Skip to content

Commit bb2c2a4

Browse files
Build: Derive build suffix from git tag data
This is for embedding "-alpha123" (etc) in builds; now builds that aren't off a tag will have "-build-1234abc" based on the hash; this was previously done for LKG builds via less general code. The major/minor version are still sourced from src/config.inc
1 parent 277e545 commit bb2c2a4

File tree

6 files changed

+28
-19
lines changed

6 files changed

+28
-19
lines changed

bin/bumpver

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,13 @@ cd "$(dirname "$0")/.."
1616

1717
vmajor=$(grep 'kDeskTopVersionMajor =' src/config.inc | sed -e 's/.* = //')
1818
vminor=$(grep 'kDeskTopVersionMinor =' src/config.inc | sed -e 's/.* = //')
19-
vsuffix=$(grep 'define kDeskTopVersionSuffix' src/config.inc | cut -d'"' -f2)
19+
20+
gittag="$(git describe --abbrev=0 --tags)"
21+
case "$gittag" in
22+
v*.*-*) vsuffix="-${gittag/#*-/}" ;;
23+
*) echo "Last tag is '$gittag'; manually tag as vM.M-alpha0" 1>&2 ; exit 1 ;;
24+
esac
25+
2026
lang=$(grep 'define kBuildLang' src/config.inc | cut -d'"' -f2)
2127
vtype=$(echo "$vsuffix" | sed -E -e 's/^-//' -e 's/[0-9]+$//')
2228
vrel=$(echo "$vsuffix" | sed -E -e 's/[^0-9]*//')
@@ -26,15 +32,13 @@ vrel=$(echo "$vsuffix" | sed -E -e 's/[^0-9]*//')
2632

2733
vrel=`expr $vrel + 1`
2834

29-
version=$(echo ${vmajor}.${vminor}-${vtype}${vrel})
35+
version="$(echo ${vmajor}.${vminor}-${vtype}${vrel})"
3036

3137
# --------------------------------------------------
3238
echo "Bumping to ${version}..."
3339

3440
bin/setlang "en"
3541

36-
perl -pni -e "s/define kDeskTopVersionSuffix .*/define kDeskTopVersionSuffix \"-${vtype}${vrel}\"/" src/config.inc
37-
3842
git commit -a -m "Bump version to ${version}" > /dev/null
3943
git tag "v${version}" > /dev/null
4044

bin/lkg

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,6 @@ set -e
44
cd "$(dirname "$0")/.."
55
source "bin/util.sh"
66

7-
# ============================================================
8-
# Tweak config
9-
10-
git checkout src/config.inc
11-
hash=$(git rev-parse --short HEAD)
12-
perl -pni -e "s/define kDeskTopVersionSuffix .*/define kDeskTopVersionSuffix \"-build-${hash}\"/" src/config.inc
13-
147
# ============================================================
158
# Do a build and package
169

bin/make_buildinfo_inc

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
#!/usr/bin/env bash
22

3-
# Generate `out/date.inc` based off last commit
3+
# Generate `out/buildinfo.inc` based off last commit and tag
44

55
set -e
66
cd "$(dirname "$0")/.."
7+
source "bin/util.sh"
78

8-
lang="$(egrep 'define kBuildLang' src/config.inc | cut -d'"' -f2)"
99
resfile="src/common/res/common.res.${lang}"
1010

1111
yyyy="$(git log -1 --format="%ad" --date=format:%Y)"
@@ -15,13 +15,16 @@ dd="$(git log -1 --format="%ad" --date=format:%d)"
1515

1616
month="$(egrep "\bres_string_month_name_${mm}\b" "$resfile" | cut -d'"' -f2)"
1717
order="$(egrep "\bres_const_date_order\b" "$resfile" | cut -d' ' -f3)"
18-
1918
if [ "$order" = "0" ]; then
2019
date="$month $dd, $yyyy"
2120
else
2221
date="$dd $month $yyyy"
2322
fi
2423

24+
if [ "$supports_lowercase" != "1" ]; then
25+
vsuffix="$(echo "$vsuffix" | tr 'a-z' 'A-Z')"
26+
fi
27+
2528
OUTDIR="out"
2629

2730
# Generate tmp file
@@ -31,6 +34,7 @@ kBuildYYYY = $yyyy
3134
kBuildYY = $yy
3235
kBuildMM = $mm
3336
kBuildDD = $dd
37+
.define kDeskTopVersionSuffix "$vsuffix"
3438
EOF
3539

3640
# Only generate real file if it doesn't exist or changed

bin/setlang

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ perl -pni \
1717
if [ "$supports_lowercase" != "1" ]; then
1818
perl -pni \
1919
-e 's/(?<=define kDeskTopProductName )"(.*)"/"\U$1\E"/;' \
20-
-e 's/(?<=define kDeskTopVersionSuffix )"(.*)"/"\U$1\E"/;' \
2120
src/config.inc
2221
fi
2322

bin/util.sh

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,19 @@ fini_progress () {
7373
# ============================================================
7474
# Extract metadata for the build
7575

76+
lang=$(grep 'define kBuildLang' src/config.inc | cut -d'"' -f2)
77+
decoded_a=$(echo 'a' | bin/transcode.pl decode $lang)
78+
supports_lowercase=$(if [ "$decoded_a" == "a" ]; then echo 1; else echo 0; fi);
79+
7680
vmajor=$(grep 'kDeskTopVersionMajor =' src/config.inc | sed -e 's/.* = //')
7781
vminor=$(grep 'kDeskTopVersionMinor =' src/config.inc | sed -e 's/.* = //')
78-
vsuffix=$(grep 'define kDeskTopVersionSuffix' src/config.inc | cut -d'"' -f2)
79-
lang=$(grep 'define kBuildLang' src/config.inc | cut -d'"' -f2)
82+
83+
# vsuffix is like "-alpha123" (current tag), "-build-abc1234" (hash), "" (release)
84+
gittag="$(git describe --tags --exact-match 2> /dev/null || true)"
85+
case "$gittag" in
86+
v*.*-*) vsuffix="-${gittag/#*-/}" ;;
87+
v*.*) vsuffix="";;
88+
*) vsuffix="-build-$(git rev-parse --short HEAD)" ;;
89+
esac
90+
8091
version=$(echo ${vmajor}.${vminor}${vsuffix}-${lang})
81-
supports_lowercase=$(grep 'define kBuildSupportsLowercase' src/config.inc | cut -d' ' -f3)

src/config.inc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
.define kDeskTopProductName "Apple II DeskTop"
1616
kDeskTopVersionMajor = 1
1717
kDeskTopVersionMinor = 6
18-
.define kDeskTopVersionSuffix "-alpha0"
1918

2019
.include "../out/buildinfo.inc"
2120

0 commit comments

Comments
 (0)