summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meson.build3
-rw-r--r--src/libcamera/meson.build4
-rwxr-xr-xutils/gen-version.sh10
3 files changed, 13 insertions, 4 deletions
diff --git a/meson.build b/meson.build
index dfed01ba..bd3246eb 100644
--- a/meson.build
+++ b/meson.build
@@ -17,7 +17,8 @@ project('libcamera', 'c', 'cpp',
# git version tag, the build metadata (e.g. +211-c94a24f4) is omitted from
# libcamera_git_version.
libcamera_git_version = run_command('utils/gen-version.sh',
- meson.build_root()).stdout().strip()
+ meson.build_root(),
+ meson.source_root()).stdout().strip()
if libcamera_git_version == ''
libcamera_git_version = meson.project_version()
endif
diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
index 243dd3c1..6727a777 100644
--- a/src/libcamera/meson.build
+++ b/src/libcamera/meson.build
@@ -95,7 +95,9 @@ libcamera_sources += control_sources
gen_version = meson.source_root() / 'utils' / 'gen-version.sh'
-version_cpp = vcs_tag(command : [gen_version, meson.build_root()],
+# Use vcs_tag() and not configure_file() or run_command(), to ensure that the
+# version gets updated with every ninja build and not just at meson setup time.
+version_cpp = vcs_tag(command : [gen_version, meson.build_root(), meson.source_root()],
input : 'version.cpp.in',
output : 'version.cpp',
fallback : meson.project_version())
diff --git a/utils/gen-version.sh b/utils/gen-version.sh
index b09ad495..d0048179 100755
--- a/utils/gen-version.sh
+++ b/utils/gen-version.sh
@@ -4,10 +4,16 @@
# Generate a version string using git describe
build_dir="$1"
+src_dir="$2"
# Bail out if the directory isn't under git control
-src_dir=$(git rev-parse --git-dir 2>&1) || exit 1
-src_dir=$(readlink -f "$src_dir/..")
+git_dir=$(git rev-parse --git-dir 2>&1) || exit 1
+
+# Derive the source directory from the git directory if not specified.
+if [ -z "$src_dir" ]
+then
+ src_dir=$(readlink -f "$git_dir/..")
+fi
# Get a short description from the tree.
version=$(git describe --abbrev=8 --match "v[0-9]*" 2>/dev/null)