summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorJordan Rose <jordan_rose@apple.com>2013-09-11 22:46:46 +0000
committerJordan Rose <jordan_rose@apple.com>2013-09-11 22:46:46 +0000
commit206d4c46784e175293e486980f0dd9b1ebab7a0d (patch)
treed01c65836090cfee8e29e64acc301b9e23427c66 /clang
parent04801d549ac167e7a7b2829eaad0b3ca9f9cb6de (diff)
downloadbcm5719-llvm-206d4c46784e175293e486980f0dd9b1ebab7a0d.tar.gz
bcm5719-llvm-206d4c46784e175293e486980f0dd9b1ebab7a0d.zip
[CMake] Always include the Clang repo version, just like the autoconf build.
Now that LLVM's helper script GetSVN.cmake actually works consistently, there's no reason not to use it. This does mean that the clangBasic target is potentially always dirty, because CMake-generated projects do not necessarily recalculate dependencies after running each target. This should end the issues of the AST format changing and breaking old module files; CMake-Clang should now detect that the version changed just like Autoconf-Clang has. llvm-svn: 190557
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Basic/CMakeLists.txt50
1 files changed, 20 insertions, 30 deletions
diff --git a/clang/lib/Basic/CMakeLists.txt b/clang/lib/Basic/CMakeLists.txt
index 34111691c82..03bf260ff02 100644
--- a/clang/lib/Basic/CMakeLists.txt
+++ b/clang/lib/Basic/CMakeLists.txt
@@ -20,35 +20,26 @@ add_clang_library(clangBasic
TokenKinds.cpp
Version.cpp
VersionTuple.cpp
+ ${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc
)
-# Determine Subversion revision.
-# FIXME: This only gets updated when CMake is run, so this revision number
-# may be out-of-date!
-if( NOT IS_SYMLINK "${CLANG_SOURCE_DIR}" ) # See PR 8437
- find_package(Subversion)
-endif()
-if (Subversion_FOUND AND EXISTS "${CLANG_SOURCE_DIR}/.svn")
- # Create custom target to generate the Subversion version include.
- add_custom_target(clang_revision_tag ALL
- COMMAND ${CMAKE_COMMAND} -DFIRST_SOURCE_DIR=${LLVM_MAIN_SRC_DIR}
- -DFIRST_REPOSITORY=LLVM_REPOSITORY
- -DSECOND_SOURCE_DIR=${CLANG_SOURCE_DIR}
- -DSECOND_REPOSITORY=SVN_REPOSITORY
- -DHEADER_FILE=${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc
- -P ${LLVM_MAIN_SRC_DIR}/cmake/modules/GetSVN.cmake)
+# Create custom target to generate the Subversion version include.
+add_custom_target(clang_revision_tag
+ ${CMAKE_COMMAND} -DFIRST_SOURCE_DIR=${LLVM_MAIN_SRC_DIR}
+ -DFIRST_NAME=LLVM
+ -DSECOND_SOURCE_DIR=${CLANG_SOURCE_DIR}
+ -DSECOND_NAME=SVN
+ -DHEADER_FILE=${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc
+ -P ${LLVM_MAIN_SRC_DIR}/cmake/modules/GetSVN.cmake)
- # Mark the generated header as being generated.
-message(STATUS "Expecting header to go in ${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc")
- set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc
- PROPERTIES GENERATED TRUE
- HEADER_FILE_ONLY TRUE)
+# Mark the generated header as being generated.
+set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.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")
-
-endif()
+# 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")
add_dependencies(clangBasic
ClangARMNeon
@@ -65,9 +56,8 @@ add_dependencies(clangBasic
ClangDiagnosticParse
ClangDiagnosticSema
ClangDiagnosticSerialization
- )
+ clang_revision_tag
+)
-# clangBasic depends on the version.
-if (Subversion_FOUND AND EXISTS "${CLANG_SOURCE_DIR}/.svn")
- add_dependencies(clangBasic clang_revision_tag)
-endif() \ No newline at end of file
+add_custom_command(TARGET clangBasic POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc)
OpenPOWER on IntegriCloud