diff options
| author | Petr Hosek <phosek@chromium.org> | 2019-01-31 06:21:01 +0000 |
|---|---|---|
| committer | Petr Hosek <phosek@chromium.org> | 2019-01-31 06:21:01 +0000 |
| commit | 0e712a766e4f3e2cf9ad0e42cab6cb4d543d0320 (patch) | |
| tree | 59f0d05f0226a864cd489b27381d438c3201bc82 /llvm/include | |
| parent | b37419ef6629b7c32f0a4bd309f2a2aed6f514fb (diff) | |
| download | bcm5719-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.txt | 41 |
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}" |

