Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Kitware
GitHub Repository: Kitware/CMake
Path: blob/master/Utilities/Release/files.bash
3150 views
1
#!/usr/bin/env bash
2
3
set -e
4
5
usage='usage: files.bash [<options>] [--]
6
7
Options:
8
9
--version <ver> CMake <major>.<minor> version number to push.
10
Defaults to version of source tree.
11
'
12
13
die() {
14
echo "$@" 1>&2; exit 1
15
}
16
17
readonly cmake_source_dir="${BASH_SOURCE%/*}/../.."
18
19
cmake_version_component()
20
{
21
sed -n "
22
/^set(CMake_VERSION_${1}/ {s/set(CMake_VERSION_${1} *\([0-9]*\))/\1/;p;}
23
" "${cmake_source_dir}/Source/CMakeVersion.cmake"
24
}
25
26
27
version=''
28
while test "$#" != 0; do
29
case "$1" in
30
--version) shift; version="$1" ;;
31
--) shift ; break ;;
32
-*) die "$usage" ;;
33
*) break ;;
34
esac
35
shift
36
done
37
test "$#" = 0 || die "$usage"
38
39
if test -z "$version"; then
40
cmake_version_major="$(cmake_version_component MAJOR)"
41
cmake_version_minor="$(cmake_version_component MINOR)"
42
cmake_version_patch="$(cmake_version_component PATCH)"
43
cmake_version_rc="$(cmake_version_component RC)"
44
version="${cmake_version_major}.${cmake_version_minor}.${cmake_version_patch}"
45
if test -n "$cmake_version_rc"; then
46
version="$version-rc$cmake_version_rc"
47
fi
48
fi
49
readonly version
50
51
IFS='.-' read version_major version_minor version_patch version_suffix <<< "$version"
52
readonly version_major
53
readonly version_minor
54
readonly version_patch
55
readonly version_suffix
56
57
if test -n "$version_suffix"; then
58
maybe_version_suffix='"suffix": "'"$version_suffix"'",'
59
else
60
maybe_version_suffix=''
61
fi
62
readonly maybe_version_suffix
63
64
readonly files_v1_in="${BASH_SOURCE%/*}/files-v1.json.in"
65
sed "
66
s/@version@/$version/g
67
s/@version_major@/$version_major/g
68
s/@version_minor@/$version_minor/g
69
s/@version_patch@/$version_patch/g
70
s/@maybe_version_suffix@/$maybe_version_suffix/g
71
" "$files_v1_in" \
72
| jq . \
73
> "cmake-$version-files-v1.json"
74
75
readonly algos='
76
256
77
'
78
for algo in $algos; do
79
shasum -a $algo \
80
"cmake-$version-files-v1.json" \
81
$(jq -r '.files[].name' "cmake-$version-files-v1.json") \
82
| LC_ALL=C sort -k 2 \
83
> "cmake-$version-SHA-$algo.txt"
84
done
85
86