From: Alp Toker Date: Fri, 6 Jun 2014 06:58:25 +0000 (+0000) Subject: Devise a package-private means to determine the LLVM version string X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7ea7c590eb103c9b7b4998b4636f5bef07832550;p=clang Devise a package-private means to determine the LLVM version string This will unbreak clang vendor builds as a follow-up to r210238, now that we can't poke into LLVM's private config.h (nor should the string be exposed by llvm-config.h). This hopefully removes for good the last include of LLVM's config.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210313 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/CMakeLists.txt b/CMakeLists.txt index ece6bf8bce..28f4e3fb81 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -156,6 +156,9 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR ) endif() set( CLANG_BUILT_STANDALONE 1 ) + set(BACKEND_PACKAGE_STRING "LLVM ${LLVM_PACKAGE_VERSION}") +else() + set(BACKEND_PACKAGE_STRING "${PACKAGE_STRING}") endif() find_package(LibXml2) diff --git a/include/clang/Config/config.h.cmake b/include/clang/Config/config.h.cmake index 8fa7a52a3e..40a6cb3a2e 100644 --- a/include/clang/Config/config.h.cmake +++ b/include/clang/Config/config.h.cmake @@ -19,4 +19,7 @@ /* Define if we have libxml2 */ #cmakedefine CLANG_HAVE_LIBXML ${CLANG_HAVE_LIBXML} +/* The LLVM product name and version */ +#define BACKEND_PACKAGE_STRING "${BACKEND_PACKAGE_STRING}" + #endif diff --git a/include/clang/Config/config.h.in b/include/clang/Config/config.h.in index d66b4cf68d..450ea9b613 100644 --- a/include/clang/Config/config.h.in +++ b/include/clang/Config/config.h.in @@ -22,4 +22,9 @@ /* Define if we have libxml2 */ #undef CLANG_HAVE_LIBXML +#undef PACKAGE_STRING + +/* The LLVM product name and version */ +#define BACKEND_PACKAGE_STRING PACKAGE_STRING + #endif diff --git a/lib/Basic/Version.cpp b/lib/Basic/Version.cpp index ae32c01139..c2b7753d41 100644 --- a/lib/Basic/Version.cpp +++ b/lib/Basic/Version.cpp @@ -13,7 +13,7 @@ #include "clang/Basic/Version.h" #include "clang/Basic/LLVM.h" -#include "llvm/Config/config.h" +#include "clang/Config/config.h" #include "llvm/Support/raw_ostream.h" #include #include @@ -130,7 +130,7 @@ std::string getClangToolFullVersion(StringRef ToolName) { // If vendor supplied, include the base LLVM version as well. #ifdef CLANG_VENDOR - OS << " (based on LLVM " << PACKAGE_VERSION << ")"; + OS << " (based on " << BACKEND_PACKAGE_STRING << ")"; #endif return OS.str(); diff --git a/lib/Frontend/CompilerInstance.cpp b/lib/Frontend/CompilerInstance.cpp index a967c0ab54..f5e2749a71 100644 --- a/lib/Frontend/CompilerInstance.cpp +++ b/lib/Frontend/CompilerInstance.cpp @@ -16,6 +16,7 @@ #include "clang/Basic/SourceManager.h" #include "clang/Basic/TargetInfo.h" #include "clang/Basic/Version.h" +#include "clang/Config/config.h" #include "clang/Frontend/ChainedDiagnosticConsumer.h" #include "clang/Frontend/FrontendAction.h" #include "clang/Frontend/FrontendActions.h" @@ -709,9 +710,7 @@ bool CompilerInstance::ExecuteAction(FrontendAction &Act) { // Validate/process some options. if (getHeaderSearchOpts().Verbose) OS << "clang -cc1 version " CLANG_VERSION_STRING -#ifdef PACKAGE_STRING - << " based upon " << PACKAGE_STRING -#endif + << " based upon " << BACKEND_PACKAGE_STRING << " default target " << llvm::sys::getDefaultTargetTriple() << "\n"; if (getFrontendOpts().ShowTimers)