Index: CMakeLists.txt =================================================================== --- CMakeLists.txt +++ CMakeLists.txt @@ -206,7 +206,7 @@ include(VersionFromVCS) option(LLVM_APPEND_VC_REV - "Append the version control system revision id to LLVM version" OFF) + "Embed the version control system revision id in LLVM" ON) if( LLVM_APPEND_VC_REV ) add_version_info_from_vcs(PACKAGE_VERSION) Index: docs/CMake.rst =================================================================== --- docs/CMake.rst +++ docs/CMake.rst @@ -247,9 +247,10 @@ tests. **LLVM_APPEND_VC_REV**:BOOL - Append version control revision info (svn revision number or Git revision id) - to LLVM version string (stored in the PACKAGE_VERSION macro). For this to work - cmake must be invoked before the build. Defaults to OFF. + Embed version control revision info (svn revision number or Git revision id). + This is used among other things in the LLVM version string (stored in the + PACKAGE_VERSION macro). For this to work cmake must be invoked before the + build. Defaults to ON. **LLVM_ENABLE_THREADS**:BOOL Build with threads support, if available. Defaults to ON. Index: include/llvm/Support/CMakeLists.txt =================================================================== --- include/llvm/Support/CMakeLists.txt +++ include/llvm/Support/CMakeLists.txt @@ -9,25 +9,27 @@ endfunction() macro(find_first_existing_vc_file out_var path) - find_program(git_executable NAMES git git.exe git.cmd) - # Run from a subdirectory to force git to print an absolute path. - execute_process(COMMAND ${git_executable} rev-parse --git-dir - WORKING_DIRECTORY ${path}/cmake - RESULT_VARIABLE git_result - OUTPUT_VARIABLE git_dir - ERROR_QUIET) - if(git_result EQUAL 0) - string(STRIP "${git_dir}" git_dir) - set(${out_var} "${git_dir}/logs/HEAD") - # some branchless cases (e.g. 'repo') may not yet have .git/logs/HEAD - if (NOT EXISTS "${git_dir}/logs/HEAD") - file(WRITE "${git_dir}/logs/HEAD" "") + if ( LLVM_APPEND_VC_REV ) + find_program(git_executable NAMES git git.exe git.cmd) + # Run from a subdirectory to force git to print an absolute path. + execute_process(COMMAND ${git_executable} rev-parse --git-dir + WORKING_DIRECTORY ${path}/cmake + RESULT_VARIABLE git_result + OUTPUT_VARIABLE git_dir + ERROR_QUIET) + if(git_result EQUAL 0) + string(STRIP "${git_dir}" git_dir) + set(${out_var} "${git_dir}/logs/HEAD") + # some branchless cases (e.g. 'repo') may not yet have .git/logs/HEAD + if (NOT EXISTS "${git_dir}/logs/HEAD") + file(WRITE "${git_dir}/logs/HEAD" "") + endif() + else() + find_first_existing_file(${out_var} + "${path}/.svn/wc.db" # SVN 1.7 + "${path}/.svn/entries" # SVN 1.6 + ) endif() - else() - find_first_existing_file(${out_var} - "${path}/.svn/wc.db" # SVN 1.7 - "${path}/.svn/entries" # SVN 1.6 - ) endif() endmacro()