Commit b254b065 authored by Brad King's avatar Brad King
Browse files

CMakeVersion: Prefer Git information provided by 'git archive' exports

Update the approach from commit fe2c558b (CMakeVersion: Preserve Git
information during 'git archive', 2019-07-25, v3.16.0-rc1~337^2) to
prefer `export-subst` information.  This will allow exported source
trees to be imported into unrelated Git repositories while still using
the original upstream CMake commit information.
parent 9150c818
...@@ -19,7 +19,12 @@ else() ...@@ -19,7 +19,12 @@ else()
set(CMake_VERSION_IS_RELEASE 0) set(CMake_VERSION_IS_RELEASE 0)
endif() endif()
if(EXISTS ${CMake_SOURCE_DIR}/.git) # If this source was exported by 'git archive', use its commit info.
set(git_info [==[$Format:%h %s$]==])
# Otherwise, try to identify the current development source version.
if(NOT git_info MATCHES "^([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]?[0-9a-f]?)[0-9a-f]* "
AND EXISTS ${CMake_SOURCE_DIR}/.git)
find_package(Git QUIET) find_package(Git QUIET)
if(GIT_FOUND) if(GIT_FOUND)
macro(_git) macro(_git)
...@@ -32,16 +37,11 @@ if(EXISTS ${CMake_SOURCE_DIR}/.git) ...@@ -32,16 +37,11 @@ if(EXISTS ${CMake_SOURCE_DIR}/.git)
) )
endmacro() endmacro()
endif() endif()
endif() if(COMMAND _git)
# Get the commit checked out in this work tree.
# Try to identify the current development source version. _git(log -n 1 HEAD "--pretty=format:%h %s" --)
if(COMMAND _git) set(git_info "${_git_out}")
# Get the commit checked out in this work tree. endif()
_git(log -n 1 HEAD "--pretty=format:%h %s" --)
set(git_info "${_git_out}")
else()
# Get the commit exported by 'git archive'.
set(git_info [==[$Format:%h %s$]==])
endif() endif()
# Extract commit information if available. # Extract commit information if available.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment