[libcamera-devel] [PATCH v4 1/2] utils: gen-version: Pass the meson source root to the gen-version.sh script

Naushir Patuck naush at raspberrypi.com
Thu Oct 14 13:59:50 CEST 2021


The gen-version.sh script expects to be called from a git repo, and sets its
src_root variable accordingly. This may not always be the case if it is built
from a tarball source - full support for which is in a future commit.

The MESON_SOURCE_ROOT environnement variable does not get set when called from
the meson vcs_tag() function, but does when called from the run_command()
function, so that cannot be used either.

Instead, explicitly pass the meson source root to the gen-version.sh script.

Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
---
 meson.build               | 3 ++-
 src/libcamera/meson.build | 2 +-
 utils/gen-version.sh      | 4 ++--
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/meson.build b/meson.build
index a49c484fe64e..556a3f7c42f8 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 243dd3c180eb..d8dd8344002c 100644
--- a/src/libcamera/meson.build
+++ b/src/libcamera/meson.build
@@ -95,7 +95,7 @@ libcamera_sources += control_sources
 
 gen_version = meson.source_root() / 'utils' / 'gen-version.sh'
 
-version_cpp = vcs_tag(command : [gen_version, meson.build_root()],
+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 b09ad495f86a..da191691a7c5 100755
--- a/utils/gen-version.sh
+++ b/utils/gen-version.sh
@@ -4,10 +4,10 @@
 # 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 rev-parse --git-dir > /dev/null 2>&1 || exit 1
 
 # Get a short description from the tree.
 version=$(git describe --abbrev=8 --match "v[0-9]*" 2>/dev/null)
-- 
2.25.1



More information about the libcamera-devel mailing list