From: Daniel Kahn Gillmor Date: Wed, 21 Jun 2023 11:28:38 -0400 Subject: Do not use git to derive version information For debian, we want the versioning to come from the tarball, whether or not it's being built from a git repository. Forwarded: not-needed --- cmake/version.cmake | 58 ----------------------------------------------------- 1 file changed, 58 deletions(-) diff --git a/cmake/version.cmake b/cmake/version.cmake index 41287e4..511d56f 100644 --- a/cmake/version.cmake +++ b/cmake/version.cmake @@ -19,21 +19,6 @@ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # -# desired length of commit hash -set(GIT_REV_LEN 7) - -# call git, store output in var (can fail) -macro(_git var) - execute_process( - COMMAND "${GIT_EXECUTABLE}" ${ARGN} - WORKING_DIRECTORY "${source_dir}" - RESULT_VARIABLE _git_ec - OUTPUT_VARIABLE ${var} - OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_QUIET - ) -endmacro() - function(extract_version_info version var_prefix) # extract the main components # v1.9.0-3-g5b92266+1546836556 @@ -79,49 +64,6 @@ function(determine_version source_dir var_prefix) else() message(STATUS "Found no version.txt.") endif() - # for GIT_EXECUTABLE - find_package(Git) - # get a description of the version, something like: - # v1.9.1-0-g38ffe82 (a tagged release) - # v1.9.1-0-g38ffe82-dirty (a tagged release with local modifications) - # v1.9.0-3-g5b92266 (post-release snapshot) - # v1.9.0-3-g5b92266-dirty (post-release snapshot with local modifications) - _git(version describe --abbrev=${GIT_REV_LEN} --match "v[0-9]*" --long --dirty) - if (NOT _git_ec EQUAL 0) - # no annotated tags, fake one - message(STATUS "Found no annotated tags.") - _git(revision rev-parse --short=${GIT_REV_LEN} --verify HEAD) - if (_git_ec EQUAL 0) - set(version "v${base_version}-0-g${revision}") - # check if dirty (this won't detect untracked files, but should be ok) - _git(changes diff-index --quiet HEAD --) - if (NOT _git_ec EQUAL 0) - string(APPEND version "-dirty") - endif() - # append the commit timestamp of the most recent commit (only - # in non-release branches -- typically master) - _git(commit_timestamp show -s --format=%ct) - if (_git_ec EQUAL 0) - string(APPEND version "+${commit_timestamp}") - endif() - elseif(has_version_txt) - # Nothing to get from git - so use version.txt completely - set(version "${version_file}") - else() - # Sad case - no git, no version.txt - set(version "v${base_version}") - endif() - else() - set(has_release_tag YES) - message(STATUS "Found annotated tag ${version}") - endif() - extract_version_info("${version}" "${local_prefix}") - if ("${has_version_txt}" AND NOT ${base_version} STREQUAL ${local_prefix}_VERSION) - message(WARNING "Tagged version ${${local_prefix}_VERSION} doesn't match one from the version.txt: ${base_version}") - if (${base_version} VERSION_GREATER ${local_prefix}_VERSION) - set(${local_prefix}_VERSION ${base_version}) - endif() - endif() foreach(suffix VERSION VERSION_NCOMMITS VERSION_GIT_REV VERSION_IS_DIRTY VERSION_COMMIT_TIMESTAMP) if (NOT DEFINED ${local_prefix}_${suffix}) message(FATAL_ERROR "Unable to determine version.")