1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
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.")
|