summaryrefslogtreecommitdiff
path: root/build-aux/meson
diff options
context:
space:
mode:
authorChun-wei Fan <fanchunwei@src.gnome.org>2021-05-18 11:02:27 +0800
committerChun-wei Fan <fanchunwei@src.gnome.org>2021-05-18 11:25:20 +0800
commitc18a1ac1a19fed1734d456741faa38e2d25ab8cf (patch)
tree76d6c128541a99991fa4dec418daa43816429a22 /build-aux/meson
parentab6e4bfc8d847d730a5ae71d107126e91e561f88 (diff)
downloadgtk+-c18a1ac1a19fed1734d456741faa38e2d25ab8cf.tar.gz
gen-demo-header.py: Fix running without git
The script assumes that the git program is in the PATH which may not be always the case, so if git was not found, fallback to the former behavior of making VCS_TAG an empty string if the profile option was not set to 'devel'. Also fix the call to the script so that we do indeed call GIT on the source GIT repo so that we can get the right short SHA1 sum. Re-organize the code a bit in the process, so that things seem cleaner.
Diffstat (limited to 'build-aux/meson')
-rwxr-xr-xbuild-aux/meson/gen-demo-header.py21
1 files changed, 13 insertions, 8 deletions
diff --git a/build-aux/meson/gen-demo-header.py b/build-aux/meson/gen-demo-header.py
index 700193a50b..b84a6a9ac0 100755
--- a/build-aux/meson/gen-demo-header.py
+++ b/build-aux/meson/gen-demo-header.py
@@ -4,7 +4,8 @@ import os
import subprocess
import sys
-profile = sys.argv[1]
+repodir = sys.argv[1]
+profile = sys.argv[2]
sys.stdout.write("/* This file is auto-generated. Do not edit. */\n")
sys.stdout.write("#pragma once\n")
@@ -12,10 +13,14 @@ sys.stdout.write("\n")
sys.stdout.write(f"#define PROFILE \"{profile}\"\n")
short_sha = os.environ.get('CI_COMMIT_SHORT_SHA')
-if short_sha is not None:
- sys.stdout.write(f"#define VCS_TAG \"{short_sha}\"\n")
-else:
- cmd = ["git", "rev-parse", "--short", "HEAD"]
- with subprocess.Popen(cmd, stdout=subprocess.PIPE) as p:
- short_sha = p.stdout.read().decode('utf-8').rstrip("\n")
- sys.stdout.write(f"#define VCS_TAG \"{short_sha}\"\n")
+if short_sha is None:
+ cmd = ["git", "-C", repodir, "rev-parse", "--short", "HEAD"]
+ try:
+ with subprocess.Popen(cmd, stdout=subprocess.PIPE) as p:
+ short_sha = p.stdout.read().decode('utf-8').rstrip("\n")
+ except FileNotFoundError:
+ short_sha = ''
+ if profile != 'default':
+ short_sha = 'devel'
+
+sys.stdout.write(f"#define VCS_TAG \"{short_sha}\"\n")