summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2017-08-29 21:44:21 +0000
committerReid Kleckner <rnk@google.com>2017-08-29 21:44:21 +0000
commit87b9591eeebfc9aaf563282d8cd802c268b30c2d (patch)
tree5ff3fe53daf41c279480487d19d0c47e9243306e
parente6c9ef369cab714f0f9e8a997d598d2f621703d0 (diff)
[cmake] Stop putting the revision info in LLVM_VERSION_STRING
Summary: This reduces the number of build actions after a no-op commit from thousands to about six, which should be acceptable. If six actions is still too many, developers can disable the LLVM_APPEND_VC_REV cmake option. llvm-config.h is a widely included header that should rarely change. Before this patch, it would change after every re-configure. Very few users of llvm-config.h need to know the precise version, and those that do can migrate to incorporating LLVM_REVISION as provided by llvm/Support/VCSRevision.h. This should bring LLVM back to the behavior that it had before r306858 from June 30 2017. Most LLVM tools will now print a version string like "6.0.0svn" instead of "6.0.0-git-c40c2a23de4". Fixes PR34308 Reviewers: pcc, rafael, hans Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D37272 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312043 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--CMakeLists.txt4
-rw-r--r--docs/CMake.rst7
-rw-r--r--include/llvm/Support/CMakeLists.txt2
3 files changed, 5 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a056abeeb5f..d08fd67ddaf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -203,10 +203,6 @@ include(VersionFromVCS)
option(LLVM_APPEND_VC_REV
"Embed the version control system revision id in LLVM" ON)
-if( LLVM_APPEND_VC_REV )
- add_version_info_from_vcs(PACKAGE_VERSION)
-endif()
-
set(PACKAGE_NAME LLVM)
set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
set(PACKAGE_BUGREPORT "http://llvm.org/bugs/")
diff --git a/docs/CMake.rst b/docs/CMake.rst
index bf97e917315..b6ebf37adc9 100644
--- a/docs/CMake.rst
+++ b/docs/CMake.rst
@@ -248,9 +248,10 @@ LLVM-specific variables
**LLVM_APPEND_VC_REV**:BOOL
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.
+ The version info is provided by the ``LLVM_REVISION`` macro in
+ ``llvm/include/llvm/Support/VCSRevision.h``. Developers using git who don't
+ need revision info can disable this option to avoid re-linking most binaries
+ after a branch switch. Defaults to ON.
**LLVM_ENABLE_THREADS**:BOOL
Build with threads support, if available. Defaults to ON.
diff --git a/include/llvm/Support/CMakeLists.txt b/include/llvm/Support/CMakeLists.txt
index 2ae666c91f5..9f374a52a88 100644
--- a/include/llvm/Support/CMakeLists.txt
+++ b/include/llvm/Support/CMakeLists.txt
@@ -46,7 +46,7 @@ if((DEFINED llvm_vc) AND LLVM_APPEND_VC_REV)
RESULT_VARIABLE files_not_equal
OUTPUT_QUIET
ERROR_QUIET)
- # Remove ${version_inc} if it's empty -- toggling LLMV_APPEND_VC_REV
+ # Remove ${version_inc} if it's empty -- toggling LLVM_APPEND_VC_REV
# from OFF to ON.
if(NOT files_not_equal)
file(REMOVE "${version_inc}")