tools/toolbox: Small refactor

Handing the various options to different meson commands in meson-build
gets a bit tedious. Instead of handling them all on the toplevel,
split out *_command() functions that generate the commandline for
the corresponding meson command.

That way, options are handled locally where they matter, which
makes future changes and additions a bit easier.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3497>
This commit is contained in:
Florian Müllner 2024-10-04 13:10:35 +02:00 committed by Marge Bot
parent 4bd13f2228
commit 1b8f67055b

View File

@ -37,9 +37,28 @@ find_toplevel() {
done
}
needs_reconfigure() {
[[ ${#MESON_OPTIONS[*]} > 0 ]] &&
[[ -d $BUILD_DIR ]]
setup_command() {
if [[ ${#MESON_OPTIONS[*]} > 0 && -d $BUILD_DIR ]]; then
RECONFIGURE=--reconfigure
fi
echo -n "meson setup --prefix=/usr $RECONFIGURE $WIPE ${MESON_OPTIONS[*]} $BUILD_DIR"
}
compile_command() {
echo -n "meson compile -C $BUILD_DIR"
}
install_command() {
echo -n "sudo meson install -C $BUILD_DIR"
}
dist_command() {
if [[ $RUN_DIST ]]; then
echo -n "meson dist -C $BUILD_DIR --include-subprojects"
else
echo -n :
fi
}
# load defaults
@ -100,16 +119,12 @@ while true; do
esac
done
BUILD_DIR=build-$TOOLBOX
find_toplevel
BUILD_DIR=build-$TOOLBOX
[[ $RUN_DIST ]] && DIST="meson dist -C $BUILD_DIR --include-subprojects" || DIST=:
needs_reconfigure && RECONFIGURE=--reconfigure
toolbox run --container $TOOLBOX sh -c "
meson setup --prefix=/usr $RECONFIGURE $WIPE ${MESON_OPTIONS[*]} $BUILD_DIR &&
meson compile -C $BUILD_DIR &&
sudo meson install -C $BUILD_DIR &&
$DIST
"
$(setup_command) &&
$(compile_command) &&
$(install_command) &&
$(dist_command)"