Skip to content

Commit

Permalink
[cmake] Stop putting the revision info in LLVM_VERSION_STRING
Browse files Browse the repository at this point in the history
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

llvm-svn: 312043
  • Loading branch information
rnk committed Aug 29, 2017
1 parent a058736 commit b8ae2b1
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 8 deletions.
4 changes: 0 additions & 4 deletions llvm/CMakeLists.txt
Expand Up @@ -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/")
Expand Down
7 changes: 4 additions & 3 deletions llvm/docs/CMake.rst
Expand Up @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion llvm/include/llvm/Support/CMakeLists.txt
Expand Up @@ -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}")
Expand Down

0 comments on commit b8ae2b1

Please sign in to comment.