summaryrefslogtreecommitdiffstats
path: root/llvm/include
diff options
context:
space:
mode:
authorPetr Hosek <phosek@chromium.org>2019-01-31 06:21:01 +0000
committerPetr Hosek <phosek@chromium.org>2019-01-31 06:21:01 +0000
commit0e712a766e4f3e2cf9ad0e42cab6cb4d543d0320 (patch)
tree59f0d05f0226a864cd489b27381d438c3201bc82 /llvm/include
parentb37419ef6629b7c32f0a4bd309f2a2aed6f514fb (diff)
downloadbcm5719-llvm-0e712a766e4f3e2cf9ad0e42cab6cb4d543d0320.tar.gz
bcm5719-llvm-0e712a766e4f3e2cf9ad0e42cab6cb4d543d0320.zip
[CMake] Unify scripts for generating VCS headers
Previously, there were two different scripts for generating VCS headers: one used by LLVM and one used by Clang. They were both similar, but different. They were both broken in their own ways, for example the one used by Clang didn't properly handle monorepo resulting in an incorrect version information reported by Clang. This change unifies two the scripts by introducing a new script that's used from both LLVM and Clang, ensures that the new script supports both monorepo and standalone SVN and Git setups, and removes the old scripts. Differential Revision: https://reviews.llvm.org/D57063 llvm-svn: 352729
Diffstat (limited to 'llvm/include')
-rw-r--r--llvm/include/llvm/Support/CMakeLists.txt41
1 files changed, 12 insertions, 29 deletions
diff --git a/llvm/include/llvm/Support/CMakeLists.txt b/llvm/include/llvm/Support/CMakeLists.txt
index bba962a5de1..b264d2e3a86 100644
--- a/llvm/include/llvm/Support/CMakeLists.txt
+++ b/llvm/include/llvm/Support/CMakeLists.txt
@@ -1,38 +1,21 @@
-find_first_existing_vc_file(llvm_vc "${LLVM_MAIN_SRC_DIR}")
+find_first_existing_vc_file("${LLVM_MAIN_SRC_DIR}" llvm_vc)
# The VC revision include that we want to generate.
set(version_inc "${CMAKE_CURRENT_BINARY_DIR}/VCSRevision.h")
-set(get_svn_script "${LLVM_CMAKE_PATH}/GenerateVersionFromCVS.cmake")
+set(get_svn_script "${LLVM_CMAKE_PATH}/GenerateVersionFromVCS.cmake")
-file(WRITE "${version_inc}.undef" "#undef LLVM_REVISION\n")
-if((DEFINED llvm_vc) AND LLVM_APPEND_VC_REV)
-
- execute_process(COMMAND ${CMAKE_COMMAND} -E compare_files
- "${version_inc}.undef" "${version_inc}"
- RESULT_VARIABLE files_not_equal
- OUTPUT_QUIET
- ERROR_QUIET)
- # Remove ${version_inc} if it doesn't define a revision. This will force it
- # to be regenerated when toggling LLVM_APPEND_VC_REV from OFF to ON.
- if(NOT files_not_equal)
- file(REMOVE "${version_inc}")
- endif()
-
- # Create custom target to generate the VC revision include.
- add_custom_command(OUTPUT "${version_inc}"
- DEPENDS "${llvm_vc}" "${get_svn_script}"
- COMMAND
- ${CMAKE_COMMAND} "-DSOURCE_DIR=${LLVM_MAIN_SRC_DIR}"
- "-DNAME=LLVM_REVISION"
- "-DHEADER_FILE=${version_inc}"
- -P "${get_svn_script}")
-else()
- # Make sure ${version_inc} doesn't define a revision
- execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
- "${version_inc}.undef" "${version_inc}")
+if(llvm_vc AND LLVM_APPEND_VC_REV)
+ set(llvm_source_dir ${LLVM_MAIN_SRC_DIR})
endif()
-file(REMOVE "${version_inc}.undef")
+
+# Create custom target to generate the VC revision include.
+add_custom_command(OUTPUT "${version_inc}"
+ DEPENDS "${llvm_vc}" "${get_svn_script}"
+ COMMAND ${CMAKE_COMMAND} "-DNAMES=LLVM"
+ "-DLLVM_SOURCE_DIR=${llvm_source_dir}"
+ "-DHEADER_FILE=${version_inc}"
+ -P "${get_svn_script}")
# Mark the generated header as being generated.
set_source_files_properties("${version_inc}"
OpenPOWER on IntegriCloud