From 8aeb6dc86470049253c1eb1ba92f5efddb8b39a6 Mon Sep 17 00:00:00 2001 From: Martin Abente Lahaye Date: Fri, 12 Jul 2024 10:13:26 -0400 Subject: [PATCH] ci: Support additional destdir in install-meson-project.sh To build a system extension we need to: 1. Add dependencies to the container (to build it), and also 2. Add dependencies to the extension (to run it, later). So there's effectively two locations where we need to install those dependencies. See https://discourse.gnome.org/t/towards-a-better-way-to-hack-and-test-your-system-components/21075 See https://gitlab.gnome.org/GNOME/gnome-build-meta/-/issues/837 Part-of: --- .gitlab-ci/install-meson-project.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.gitlab-ci/install-meson-project.sh b/.gitlab-ci/install-meson-project.sh index e1b46163b..d81191fd2 100755 --- a/.gitlab-ci/install-meson-project.sh +++ b/.gitlab-ci/install-meson-project.sh @@ -13,6 +13,7 @@ usage() { --subdir Build subdirectory instead of whole project --prepare Script to run before build --libdir Setup the project with a different libdir + --destdir Install the project to an additional destdir -h, --help Display this help @@ -25,6 +26,7 @@ TEMP=$(getopt \ --longoptions='subdir:' \ --longoptions='prepare:' \ --longoptions='libdir:' \ + --longoptions='destdir:' \ --longoptions='help' \ -- "$@") @@ -34,6 +36,7 @@ unset TEMP MESON_OPTIONS=() SUBDIR=. PREPARE=: +DESTDIR="" while true; do case "$1" in @@ -57,6 +60,11 @@ while true; do shift 2 ;; + --destdir) + DESTDIR=$2 + shift 2 + ;; + -h|--help) usage exit 0 @@ -85,5 +93,11 @@ git clone --depth 1 "$REPO_URL" -b "$COMMIT" "$CHECKOUT_DIR" pushd "$CHECKOUT_DIR/$SUBDIR" sh -c "$PREPARE" meson setup --prefix=/usr _build "${MESON_OPTIONS[@]}" + +# Install it to an additional directory e.g., system extension directory +if [ -n "${DESTDIR}" ]; then + meson install -C _build --destdir=$DESTDIR +fi + meson install -C _build popd