diff options
-rw-r--r-- | meson.build | 2 | ||||
-rw-r--r-- | src/libcamera/meson.build | 2 | ||||
-rwxr-xr-x | utils/gen-version.sh | 13 |
3 files changed, 9 insertions, 8 deletions
diff --git a/meson.build b/meson.build index 8f3d0ce9..13d0605f 100644 --- a/meson.build +++ b/meson.build @@ -15,7 +15,7 @@ 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.source_root()).stdout().strip() + meson.build_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 97ff86e2..adc749ec 100644 --- a/src/libcamera/meson.build +++ b/src/libcamera/meson.build @@ -81,7 +81,7 @@ libcamera_sources += control_types_cpp gen_version = join_paths(meson.source_root(), 'utils', 'gen-version.sh') -version_cpp = vcs_tag(command : [gen_version, meson.source_root()], +version_cpp = vcs_tag(command : [gen_version, meson.build_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 708c01d3..7f7872ce 100755 --- a/utils/gen-version.sh +++ b/utils/gen-version.sh @@ -3,13 +3,11 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Generate a version string using git describe -if [ -n "$1" ] -then - cd "$1" 2>/dev/null || exit 1 -fi +build_dir="$1" # Bail out if the directory isn't under git control -git rev-parse --git-dir >/dev/null 2>&1 || exit 1 +src_dir=$(git rev-parse --git-dir 2>&1) || exit 1 +src_dir=$(readlink -f "$src_dir/..") # Get a short description from the tree. version=$(git describe --abbrev=8 --match "v[0-9]*" 2>/dev/null) @@ -24,7 +22,10 @@ fi # Append a '-dirty' suffix if the working tree is dirty. Prevent false # positives due to changed timestamps by running git update-index. -git update-index --refresh > /dev/null 2>&1 +if [ -z "$build_dir" ] || (echo "$build_dir" | grep -q "$src_dir") +then + git update-index --refresh > /dev/null 2>&1 +fi git diff-index --quiet HEAD || version="$version-dirty" # Replace first '-' with a '+' to denote build metadata, strip the 'g' in from |