meson/setup-hook.sh: make build directory configurable

This commit is contained in:
Valentin Gagarin 2024-09-18 21:54:02 +02:00 committed by John Ericson
parent 968e5b2ab2
commit 1ceba9367c
2 changed files with 14 additions and 2 deletions

View File

@ -18,6 +18,16 @@ setup hook registering ninja-based build and install phases.
Controls the flags passed to `meson setup` during configure phase. Controls the flags passed to `meson setup` during configure phase.
#### `mesonBuildDir` {#meson-build-dir}
Directory where Meson will put intermediate files.
Setting this can be useful for debugging multiple Meson builds while in the same source directory, for example, when building for different platforms.
Different values for each build will prevent build artefacts from interefering with each other.
This setting has no tangible effect when running the build in a sandboxed derivation.
The default value is `build`.
#### `mesonWrapMode` {#meson-wrap-mode} #### `mesonWrapMode` {#meson-wrap-mode}
Which value is passed as Which value is passed as

View File

@ -3,6 +3,8 @@
mesonConfigurePhase() { mesonConfigurePhase() {
runHook preConfigure runHook preConfigure
: ${mesonBuildDir:=build}
local flagsArray=() local flagsArray=()
if [ -z "${dontAddPrefix-}" ]; then if [ -z "${dontAddPrefix-}" ]; then
@ -28,8 +30,8 @@ mesonConfigurePhase() {
echoCmd 'mesonConfigurePhase flags' "${flagsArray[@]}" echoCmd 'mesonConfigurePhase flags' "${flagsArray[@]}"
meson setup build "${flagsArray[@]}" meson setup "$mesonBuildDir" "${flagsArray[@]}"
cd build || { echoCmd 'mesonConfigurePhase' "could not cd to build"; exit 1; } cd "$mesonBuildDir" || { echoCmd 'mesonConfigurePhase' "could not cd to $mesonBuildDir"; exit 1; }
if ! [[ -v enableParallelBuilding ]]; then if ! [[ -v enableParallelBuilding ]]; then
enableParallelBuilding=1 enableParallelBuilding=1