aboutsummaryrefslogtreecommitdiff
path: root/clang
diff options
context:
space:
mode:
authorPetr Hosek <phosek@chromium.org>2019-01-31 07:12:43 +0000
committerPetr Hosek <phosek@chromium.org>2019-01-31 07:12:43 +0000
commit12062e06674070df972a3a561705f227e733cb06 (patch)
treee10ba48613ac87f70c51bab5f06acb21c3548c1f /clang
parent046cac61c19e5d9c6262feb4de8df99e0a3b8248 (diff)
downloadllvm-12062e06674070df972a3a561705f227e733cb06.zip
llvm-12062e06674070df972a3a561705f227e733cb06.tar.gz
llvm-12062e06674070df972a3a561705f227e733cb06.tar.bz2
Revert "[CMake] Unify scripts for generating VCS headers"
This reverts commits r352729 and r352731: this broke Sanitizer Windows bots llvm-svn: 352733
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Basic/CMakeLists.txt55
-rw-r--r--clang/lib/Basic/Version.cpp15
2 files changed, 42 insertions, 28 deletions
diff --git a/clang/lib/Basic/CMakeLists.txt b/clang/lib/Basic/CMakeLists.txt
index 7e1543b..8b3aa0f 100644
--- a/clang/lib/Basic/CMakeLists.txt
+++ b/clang/lib/Basic/CMakeLists.txt
@@ -4,34 +4,45 @@ set(LLVM_LINK_COMPONENTS
Support
)
-find_first_existing_vc_file("${LLVM_MAIN_SRC_DIR}" llvm_vc)
-find_first_existing_vc_file("${CLANG_SOURCE_DIR}" clang_vc)
+find_first_existing_vc_file(llvm_vc "${LLVM_MAIN_SRC_DIR}")
+find_first_existing_vc_file(clang_vc "${CLANG_SOURCE_DIR}")
# The VC revision include that we want to generate.
-set(version_inc "${CMAKE_CURRENT_BINARY_DIR}/VCSRevision.h")
+set(version_inc "${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc")
-set(get_svn_script "${LLVM_CMAKE_PATH}/GenerateVersionFromVCS.cmake")
+set(get_svn_script "${LLVM_CMAKE_PATH}/GetSVN.cmake")
-if(llvm_vc)
- set(llvm_source_dir ${LLVM_MAIN_SRC_DIR})
-endif()
-if(clang_vc)
- set(clang_source_dir ${CLANG_SOURCE_DIR})
-endif()
+if(DEFINED llvm_vc AND DEFINED clang_vc)
+ # Create custom target to generate the VC revision include.
+ add_custom_command(OUTPUT "${version_inc}"
+ DEPENDS "${llvm_vc}" "${clang_vc}" "${get_svn_script}"
+ COMMAND
+ ${CMAKE_COMMAND} "-DFIRST_SOURCE_DIR=${LLVM_MAIN_SRC_DIR}"
+ "-DFIRST_NAME=LLVM"
+ "-DSECOND_SOURCE_DIR=${CLANG_SOURCE_DIR}"
+ "-DSECOND_NAME=SVN"
+ "-DHEADER_FILE=${version_inc}"
+ -P "${get_svn_script}")
-# Create custom target to generate the VC revision include.
-add_custom_command(OUTPUT "${version_inc}"
- DEPENDS "${llvm_vc}" "${clang_vc}" "${get_svn_script}"
- COMMAND ${CMAKE_COMMAND} "-DNAMES=LLVM\;CLANG"
- "-DLLVM_SOURCE_DIR=${llvm_source_dir}"
- "-DCLANG_SOURCE_DIR=${clang_source_dir}"
- "-DHEADER_FILE=${version_inc}"
- -P "${get_svn_script}")
+ # Mark the generated header as being generated.
+ set_source_files_properties("${version_inc}"
+ PROPERTIES GENERATED TRUE
+ HEADER_FILE_ONLY TRUE)
-# Mark the generated header as being generated.
-set_source_files_properties("${version_inc}"
- PROPERTIES GENERATED TRUE
- HEADER_FILE_ONLY TRUE)
+ # Tell Version.cpp that it needs to build with -DHAVE_SVN_VERSION_INC.
+ set_source_files_properties(Version.cpp
+ PROPERTIES COMPILE_DEFINITIONS "HAVE_SVN_VERSION_INC")
+else()
+ # Not producing a VC revision include.
+ set(version_inc)
+
+ # Being able to force-set the SVN revision in cases where it isn't available
+ # is useful for performance tracking, and matches compatibility from autoconf.
+ if(SVN_REVISION)
+ set_source_files_properties(Version.cpp
+ PROPERTIES COMPILE_DEFINITIONS "SVN_REVISION=\"${SVN_REVISION}\"")
+ endif()
+endif()
add_clang_library(clangBasic
Attributes.cpp
diff --git a/clang/lib/Basic/Version.cpp b/clang/lib/Basic/Version.cpp
index bbaeafe..4ed081d 100644
--- a/clang/lib/Basic/Version.cpp
+++ b/clang/lib/Basic/Version.cpp
@@ -10,7 +10,6 @@
//
//===----------------------------------------------------------------------===//
-#include "VCSRevision.h"
#include "clang/Basic/Version.h"
#include "clang/Basic/LLVM.h"
#include "clang/Config/config.h"
@@ -18,19 +17,23 @@
#include <cstdlib>
#include <cstring>
+#ifdef HAVE_SVN_VERSION_INC
+# include "SVNVersion.inc"
+#endif
+
namespace clang {
std::string getClangRepositoryPath() {
#if defined(CLANG_REPOSITORY_STRING)
return CLANG_REPOSITORY_STRING;
#else
-#ifdef CLANG_REPOSITORY
- StringRef URL(CLANG_REPOSITORY);
+#ifdef SVN_REPOSITORY
+ StringRef URL(SVN_REPOSITORY);
#else
StringRef URL("");
#endif
- // If the CLANG_REPOSITORY is empty, try to use the SVN keyword. This helps us
+ // If the SVN_REPOSITORY is empty, try to use the SVN keyword. This helps us
// pick up a tag in an SVN export, for example.
StringRef SVNRepository("$URL$");
if (URL.empty()) {
@@ -68,8 +71,8 @@ std::string getLLVMRepositoryPath() {
}
std::string getClangRevision() {
-#ifdef CLANG_REVISION
- return CLANG_REVISION;
+#ifdef SVN_REVISION
+ return SVN_REVISION;
#else
return "";
#endif