treewide: support structuredAttrs in setup hooks (part 2) (#335666)

This commit is contained in:
Philip Taron 2024-08-28 14:07:58 -07:00 committed by GitHub
commit 0d1b26857b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
21 changed files with 197 additions and 217 deletions

View File

@ -4,8 +4,11 @@ autoreconfPhase() {
runHook preAutoreconf
local flagsArray=()
: "${autoreconfFlags:=--install --force --verbose}"
concatTo flagsArray autoreconfFlags
if [[ -v autoreconfFlags ]]; then
concatTo flagsArray autoreconfFlags
else
flagsArray+=(--install --force --verbose)
fi
autoreconf "${flagsArray[@]}"
runHook postAutoreconf

View File

@ -14,9 +14,8 @@ bmakeBuildPhase() {
local flagsArray=(
${enableParallelBuilding:+-j${NIX_BUILD_CORES}}
SHELL="$SHELL"
$makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"}
$buildFlags ${buildFlagsArray+"${buildFlagsArray[@]}"}
)
concatTo flagsArray makeFlags makeFlagsArray buildFlags buildFlagsArray
echoCmd 'build flags' "${flagsArray[@]}"
bmake ${makefile:+-f $makefile} "${flagsArray[@]}"
@ -42,11 +41,8 @@ bmakeCheckPhase() {
local flagsArray=(
${enableParallelChecking:+-j${NIX_BUILD_CORES}}
SHELL="$SHELL"
# Old bash empty array hack
$makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"}
${checkFlags:-VERBOSE=y} ${checkFlagsArray+"${checkFlagsArray[@]}"}
${checkTarget}
)
concatTo flagsArray makeFlags makeFlagsArray checkFlags=VERBOSE=y checkFlagsArray checkTarget
echoCmd 'check flags' "${flagsArray[@]}"
bmake ${makefile:+-f $makefile} "${flagsArray[@]}"
@ -65,11 +61,8 @@ bmakeInstallPhase() {
local flagsArray=(
${enableParallelInstalling:+-j${NIX_BUILD_CORES}}
SHELL="$SHELL"
# Old bash empty array hack
$makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"}
$installFlags ${installFlagsArray+"${installFlagsArray[@]}"}
${installTargets:-install}
)
concatTo flagsArray makeFlags makeFlagsArray installFlags installFlagsArray installTargets=install
echoCmd 'install flags' "${flagsArray[@]}"
bmake ${makefile:+-f $makefile} "${flagsArray[@]}"
@ -84,10 +77,8 @@ bmakeDistPhase() {
mkdir -p "$prefix"
fi
# Old bash empty array hack
local flagsArray=(
$distFlags ${distFlagsArray+"${distFlagsArray[@]}"} ${distTarget:-dist}
)
local flagsArray=()
concatTo flagsArray distFlags distFlagsArray distTarget=dist
echo 'dist flags: %q' "${flagsArray[@]}"
bmake ${makefile:+-f $makefile} "${flagsArray[@]}"

View File

@ -1,7 +1,10 @@
# shellcheck shell=bash
justBuildPhase() {
runHook preBuild
local flagsArray=($justFlags "${justFlagsArray[@]}")
local flagsArray=()
concatTo flagsArray justFlags justFlagsArray
echoCmd 'build flags' "${flagsArray[@]}"
just "${flagsArray[@]}"
@ -14,17 +17,15 @@ justCheckPhase() {
if [ -z "${checkTarget:-}" ]; then
if just -n test >/dev/null 2>&1; then
checkTarget=test
checkTarget="test"
fi
fi
if [ -z "${checkTarget:-}" ]; then
echo "no test target found in just, doing nothing"
else
local flagsArray=(
$justFlags "${justFlagsArray[@]}"
$checkTarget
)
local flagsArray=()
concatTo flagsArray justFlags justFlagsArray checkTarget
echoCmd 'check flags' "${flagsArray[@]}"
just "${flagsArray[@]}"
@ -36,8 +37,8 @@ justCheckPhase() {
justInstallPhase() {
runHook preInstall
# shellcheck disable=SC2086
local flagsArray=($justFlags "${justFlagsArray[@]}" ${installTargets:-install})
local flagsArray=()
concatTo flagsArray justFlags justFlagsArray installTargets=install
echoCmd 'install flags' "${flagsArray[@]}"
just "${flagsArray[@]}"
@ -45,14 +46,14 @@ justInstallPhase() {
runHook postInstall
}
if [ -z "${dontUseJustBuild-}" -a -z "${buildPhase-}" ]; then
if [ -z "${dontUseJustBuild-}" ] && [ -z "${buildPhase-}" ]; then
buildPhase=justBuildPhase
fi
if [ -z "${dontUseJustCheck-}" -a -z "${checkPhase-}" ]; then
if [ -z "${dontUseJustCheck-}" ] && [ -z "${checkPhase-}" ]; then
checkPhase=justCheckPhase
fi
if [ -z "${dontUseJustInstall-}" -a -z "${installPhase-}" ]; then
if [ -z "${dontUseJustInstall-}" ] && [ -z "${installPhase-}" ]; then
installPhase=justInstallPhase
fi

View File

@ -65,8 +65,7 @@ ninjaInstallPhase() {
local flagsArray=(
"-j$buildCores"
)
: "${installTargets:=install}"
concatTo flagsArray ninjaFlags ninjaFlagsArray installTargets
concatTo flagsArray ninjaFlags ninjaFlagsArray installTargets=install
echoCmd 'install flags' "${flagsArray[@]}"
TERM=dumb ninja "${flagsArray[@]}"

View File

@ -8,14 +8,13 @@ sconsBuildPhase() {
fi
if [ -z "${dontAddPrefix:-}" ] && [ -n "$prefix" ]; then
buildFlags="${prefixKey:-prefix=}$prefix $buildFlags"
prependToVar buildFlags "${prefixKey:-prefix=}$prefix"
fi
local flagsArray=(
${enableParallelBuilding:+-j${NIX_BUILD_CORES}}
$sconsFlags ${sconsFlagsArray[@]}
$buildFlags ${buildFlagsArray[@]}
)
concatTo flagsArray sconsFlags sconsFlagsArray buildFlags buildFlagsArray
echoCmd 'scons build flags' "${flagsArray[@]}"
scons "${flagsArray[@]}"
@ -31,15 +30,13 @@ sconsInstallPhase() {
fi
if [ -z "${dontAddPrefix:-}" ] && [ -n "$prefix" ]; then
installFlags="${prefixKey:-prefix=}$prefix $installFlags"
prependToVar installFlags "${prefixKey:-prefix=}$prefix"
fi
local flagsArray=(
${enableParallelInstalling:+-j${NIX_BUILD_CORES}}
$sconsFlags ${sconsFlagsArray[@]}
$installFlags ${installFlagsArray[@]}
${installTargets:-install}
)
concatTo flagsArray sconsFlags sconsFlagsArray installFlags installFlagsArray installTargets=install
echoCmd 'scons install flags' "${flagsArray[@]}"
scons "${flagsArray[@]}"
@ -63,9 +60,8 @@ sconsCheckPhase() {
else
local flagsArray=(
${enableParallelChecking:+-j${NIX_BUILD_CORES}}
$sconsFlags ${sconsFlagsArray[@]}
${checkFlagsArray[@]}
)
concatTo flagsArray sconsFlags sconsFlagsArray checkFlagsArray checkTarget
echoCmd 'scons check flags' "${flagsArray[@]}"
scons "${flagsArray[@]}"

View File

@ -16,11 +16,8 @@ wafConfigurePhase() {
export PKGCONFIG="${PKG_CONFIG}"
fi
local flagsArray=(
$prefixFlag
$wafConfigureFlags "${wafConfigureFlagsArray[@]}"
${wafConfigureTargets:-configure}
)
local flagsArray=( $prefixFlag )
concatTo flagsArray wafConfigureFlags wafConfigureFlagsArray wafConfigureTargets=configure
echoCmd 'waf configure flags' "${flagsArray[@]}"
python "$wafPath" "${flagsArray[@]}"
@ -41,15 +38,8 @@ wafConfigurePhase() {
wafBuildPhase () {
runHook preBuild
# set to empty if unset
: "${wafFlags=}"
local flagsArray=(
${enableParallelBuilding:+-j ${NIX_BUILD_CORES}}
$wafFlags ${wafFlagsArray[@]}
$wafBuildFlags ${wafBuildFlagsArray[@]}
${wafBuildTargets:-build}
)
local flagsArray=( ${enableParallelBuilding:+-j ${NIX_BUILD_CORES}} )
concatTo flagsArray wafFlags wafFlagsArray wafBuildFlags wafBuildFlagsArray wafBuildTargets=build
echoCmd 'waf build flags' "${flagsArray[@]}"
python "$wafPath" "${flagsArray[@]}"
@ -64,12 +54,8 @@ wafInstallPhase() {
mkdir -p "$prefix"
fi
local flagsArray=(
${enableParallelInstalling:+-j ${NIX_BUILD_CORES}}
$wafFlags ${wafFlagsArray[@]}
$wafInstallFlags ${wafInstallFlagsArray[@]}
${wafInstallTargets:-install}
)
local flagsArray=( ${enableParallelInstalling:+-j ${NIX_BUILD_CORES}} )
concatTo flagsArray wafFlags wafFlagsArray wafInstallFlags wafInstallFlagsArray wafInstallTargets=install
echoCmd 'waf install flags' "${flagsArray[@]}"
python "$wafPath" "${flagsArray[@]}"

View File

@ -1,5 +1,6 @@
# shellcheck shell=bash disable=SC2154,SC2086
# shellcheck shell=bash
# shellcheck disable=SC2034
readonly zigDefaultFlagsArray=(@zig_default_flags@)
function zigSetGlobalCacheDir {
@ -10,10 +11,9 @@ function zigSetGlobalCacheDir {
function zigBuildPhase {
runHook preBuild
local flagsArray=(
"${zigDefaultFlagsArray[@]}"
$zigBuildFlags "${zigBuildFlagsArray[@]}"
)
local flagsArray=()
concatTo flagsArray zigDefaultFlagsArray \
zigBuildFlags zigBuildFlagsArray
echoCmd 'zig build flags' "${flagsArray[@]}"
zig build "${flagsArray[@]}"
@ -24,10 +24,9 @@ function zigBuildPhase {
function zigCheckPhase {
runHook preCheck
local flagsArray=(
"${zigDefaultFlagsArray[@]}"
$zigCheckFlags "${zigCheckFlagsArray[@]}"
)
local flagsArray=()
concatTo flagsArray zigDefaultFlagsArray \
zigCheckFlags zigCheckFlagsArray
echoCmd 'zig check flags' "${flagsArray[@]}"
zig build test "${flagsArray[@]}"
@ -38,11 +37,10 @@ function zigCheckPhase {
function zigInstallPhase {
runHook preInstall
local flagsArray=(
"${zigDefaultFlagsArray[@]}"
$zigBuildFlags "${zigBuildFlagsArray[@]}"
$zigInstallFlags "${zigInstallFlagsArray[@]}"
)
local flagsArray=()
concatTo flagsArray zigDefaultFlagsArray \
zigBuildFlags zigBuildFlagsArray \
zigInstallFlags zigInstallFlagsArray
if [ -z "${dontAddPrefix-}" ]; then
# Zig does not recognize `--prefix=/dir/`, only `--prefix /dir/`
@ -55,6 +53,7 @@ function zigInstallPhase {
runHook postInstall
}
# shellcheck disable=SC2154
addEnvHooks "$targetOffset" zigSetGlobalCacheDir
if [ -z "${dontUseZigBuild-}" ] && [ -z "${buildPhase-}" ]; then

View File

@ -1,5 +1,6 @@
# shellcheck shell=bash disable=SC2154,SC2086
# shellcheck shell=bash
# shellcheck disable=SC2034
readonly zigDefaultFlagsArray=(@zig_default_flags@)
function zigSetGlobalCacheDir {
@ -10,10 +11,9 @@ function zigSetGlobalCacheDir {
function zigBuildPhase {
runHook preBuild
local flagsArray=(
"${zigDefaultFlagsArray[@]}"
$zigBuildFlags "${zigBuildFlagsArray[@]}"
)
local flagsArray=()
concatTo flagsArray zigDefaultFlagsArray \
zigBuildFlags zigBuildFlagsArray
echoCmd 'zig build flags' "${flagsArray[@]}"
zig build "${flagsArray[@]}"
@ -24,10 +24,9 @@ function zigBuildPhase {
function zigCheckPhase {
runHook preCheck
local flagsArray=(
"${zigDefaultFlagsArray[@]}"
$zigCheckFlags "${zigCheckFlagsArray[@]}"
)
local flagsArray=()
concatTo flagsArray zigDefaultFlagsArray \
zigCheckFlags zigCheckFlagsArray
echoCmd 'zig check flags' "${flagsArray[@]}"
zig build test "${flagsArray[@]}"
@ -38,11 +37,10 @@ function zigCheckPhase {
function zigInstallPhase {
runHook preInstall
local flagsArray=(
"${zigDefaultFlagsArray[@]}"
$zigBuildFlags "${zigBuildFlagsArray[@]}"
$zigInstallFlags "${zigInstallFlagsArray[@]}"
)
local flagsArray=()
concatTo flagsArray zigDefaultFlagsArray \
zigBuildFlags zigBuildFlagsArray \
zigInstallFlags zigInstallFlagsArray
if [ -z "${dontAddPrefix-}" ]; then
# Zig does not recognize `--prefix=/dir/`, only `--prefix /dir/`
@ -55,6 +53,7 @@ function zigInstallPhase {
runHook postInstall
}
# shellcheck disable=SC2154
addEnvHooks "$targetOffset" zigSetGlobalCacheDir
if [ -z "${dontUseZigBuild-}" ] && [ -z "${buildPhase-}" ]; then

View File

@ -1,5 +1,6 @@
# shellcheck shell=bash disable=SC2154,SC2086
# shellcheck shell=bash
# shellcheck disable=SC2034
readonly zigDefaultFlagsArray=(@zig_default_flags@)
function zigSetGlobalCacheDir {
@ -10,10 +11,9 @@ function zigSetGlobalCacheDir {
function zigBuildPhase {
runHook preBuild
local flagsArray=(
"${zigDefaultFlagsArray[@]}"
$zigBuildFlags "${zigBuildFlagsArray[@]}"
)
local flagsArray=()
concatTo flagsArray zigDefaultFlagsArray \
zigBuildFlags zigBuildFlagsArray
echoCmd 'zig build flags' "${flagsArray[@]}"
zig build "${flagsArray[@]}"
@ -24,10 +24,9 @@ function zigBuildPhase {
function zigCheckPhase {
runHook preCheck
local flagsArray=(
"${zigDefaultFlagsArray[@]}"
$zigCheckFlags "${zigCheckFlagsArray[@]}"
)
local flagsArray=()
concatTo flagsArray zigDefaultFlagsArray \
zigCheckFlags zigCheckFlagsArray
echoCmd 'zig check flags' "${flagsArray[@]}"
zig build test "${flagsArray[@]}"
@ -38,11 +37,10 @@ function zigCheckPhase {
function zigInstallPhase {
runHook preInstall
local flagsArray=(
"${zigDefaultFlagsArray[@]}"
$zigBuildFlags "${zigBuildFlagsArray[@]}"
$zigInstallFlags "${zigInstallFlagsArray[@]}"
)
local flagsArray=()
concatTo flagsArray zigDefaultFlagsArray \
zigBuildFlags zigBuildFlagsArray \
zigInstallFlags zigInstallFlagsArray
if [ -z "${dontAddPrefix-}" ]; then
# Zig does not recognize `--prefix=/dir/`, only `--prefix /dir/`
@ -55,6 +53,7 @@ function zigInstallPhase {
runHook postInstall
}
# shellcheck disable=SC2154
addEnvHooks "$targetOffset" zigSetGlobalCacheDir
if [ -z "${dontUseZigBuild-}" ] && [ -z "${buildPhase-}" ]; then

View File

@ -1,5 +1,6 @@
# shellcheck shell=bash disable=SC2154,SC2086
# shellcheck shell=bash
# shellcheck disable=SC2034
readonly zigDefaultFlagsArray=(@zig_default_flags@)
function zigSetGlobalCacheDir {
@ -10,10 +11,9 @@ function zigSetGlobalCacheDir {
function zigBuildPhase {
runHook preBuild
local flagsArray=(
"${zigDefaultFlagsArray[@]}"
$zigBuildFlags "${zigBuildFlagsArray[@]}"
)
local flagsArray=()
concatTo flagsArray zigDefaultFlagsArray \
zigBuildFlags zigBuildFlagsArray
echoCmd 'zig build flags' "${flagsArray[@]}"
zig build "${flagsArray[@]}"
@ -24,10 +24,9 @@ function zigBuildPhase {
function zigCheckPhase {
runHook preCheck
local flagsArray=(
"${zigDefaultFlagsArray[@]}"
$zigCheckFlags "${zigCheckFlagsArray[@]}"
)
local flagsArray=()
concatTo flagsArray zigDefaultFlagsArray \
zigCheckFlags zigCheckFlagsArray
echoCmd 'zig check flags' "${flagsArray[@]}"
zig build test "${flagsArray[@]}"
@ -38,11 +37,10 @@ function zigCheckPhase {
function zigInstallPhase {
runHook preInstall
local flagsArray=(
"${zigDefaultFlagsArray[@]}"
$zigBuildFlags "${zigBuildFlagsArray[@]}"
$zigInstallFlags "${zigInstallFlagsArray[@]}"
)
local flagsArray=()
concatTo flagsArray zigDefaultFlagsArray \
zigBuildFlags zigBuildFlagsArray \
zigInstallFlags zigInstallFlagsArray
if [ -z "${dontAddPrefix-}" ]; then
# Zig does not recognize `--prefix=/dir/`, only `--prefix /dir/`
@ -55,6 +53,7 @@ function zigInstallPhase {
runHook postInstall
}
# shellcheck disable=SC2154
addEnvHooks "$targetOffset" zigSetGlobalCacheDir
if [ -z "${dontUseZigBuild-}" ] && [ -z "${buildPhase-}" ]; then

View File

@ -1,5 +1,6 @@
# shellcheck shell=bash disable=SC2154,SC2086
# shellcheck shell=bash
# shellcheck disable=SC2034
readonly zigDefaultFlagsArray=(@zig_default_flags@)
function zigSetGlobalCacheDir {
@ -10,10 +11,9 @@ function zigSetGlobalCacheDir {
function zigBuildPhase {
runHook preBuild
local flagsArray=(
"${zigDefaultFlagsArray[@]}"
$zigBuildFlags "${zigBuildFlagsArray[@]}"
)
local flagsArray=()
concatTo flagsArray zigDefaultFlagsArray \
zigBuildFlags zigBuildFlagsArray
echoCmd 'zig build flags' "${flagsArray[@]}"
zig build "${flagsArray[@]}"
@ -24,10 +24,9 @@ function zigBuildPhase {
function zigCheckPhase {
runHook preCheck
local flagsArray=(
"${zigDefaultFlagsArray[@]}"
$zigCheckFlags "${zigCheckFlagsArray[@]}"
)
local flagsArray=()
concatTo flagsArray zigDefaultFlagsArray \
zigCheckFlags zigCheckFlagsArray
echoCmd 'zig check flags' "${flagsArray[@]}"
zig build test "${flagsArray[@]}"
@ -38,11 +37,10 @@ function zigCheckPhase {
function zigInstallPhase {
runHook preInstall
local flagsArray=(
"${zigDefaultFlagsArray[@]}"
$zigBuildFlags "${zigBuildFlagsArray[@]}"
$zigInstallFlags "${zigInstallFlagsArray[@]}"
)
local flagsArray=()
concatTo flagsArray zigDefaultFlagsArray \
zigBuildFlags zigBuildFlagsArray \
zigInstallFlags zigInstallFlagsArray
if [ -z "${dontAddPrefix-}" ]; then
# Zig does not recognize `--prefix=/dir/`, only `--prefix /dir/`
@ -55,6 +53,7 @@ function zigInstallPhase {
runHook postInstall
}
# shellcheck disable=SC2154
addEnvHooks "$targetOffset" zigSetGlobalCacheDir
if [ -z "${dontUseZigBuild-}" ] && [ -z "${buildPhase-}" ]; then

View File

@ -1,5 +1,6 @@
# shellcheck shell=bash disable=SC2154,SC2086
# shellcheck shell=bash
# shellcheck disable=SC2034
readonly zigDefaultFlagsArray=(@zig_default_flags@)
function zigSetGlobalCacheDir {
@ -10,10 +11,9 @@ function zigSetGlobalCacheDir {
function zigBuildPhase {
runHook preBuild
local flagsArray=(
"${zigDefaultFlagsArray[@]}"
$zigBuildFlags "${zigBuildFlagsArray[@]}"
)
local flagsArray=()
concatTo flagsArray zigDefaultFlagsArray \
zigBuildFlags zigBuildFlagsArray
echoCmd 'zig build flags' "${flagsArray[@]}"
zig build "${flagsArray[@]}"
@ -24,10 +24,9 @@ function zigBuildPhase {
function zigCheckPhase {
runHook preCheck
local flagsArray=(
"${zigDefaultFlagsArray[@]}"
$zigCheckFlags "${zigCheckFlagsArray[@]}"
)
local flagsArray=()
concatTo flagsArray zigDefaultFlagsArray \
zigCheckFlags zigCheckFlagsArray
echoCmd 'zig check flags' "${flagsArray[@]}"
zig build test "${flagsArray[@]}"
@ -38,11 +37,10 @@ function zigCheckPhase {
function zigInstallPhase {
runHook preInstall
local flagsArray=(
"${zigDefaultFlagsArray[@]}"
$zigBuildFlags "${zigBuildFlagsArray[@]}"
$zigInstallFlags "${zigInstallFlagsArray[@]}"
)
local flagsArray=()
concatTo flagsArray zigDefaultFlagsArray \
zigBuildFlags zigBuildFlagsArray \
zigInstallFlags zigInstallFlagsArray
if [ -z "${dontAddPrefix-}" ]; then
# Zig does not recognize `--prefix=/dir/`, only `--prefix /dir/`
@ -55,6 +53,7 @@ function zigInstallPhase {
runHook postInstall
}
# shellcheck disable=SC2154
addEnvHooks "$targetOffset" zigSetGlobalCacheDir
if [ -z "${dontUseZigBuild-}" ] && [ -z "${buildPhase-}" ]; then

View File

@ -1,40 +1,36 @@
. @fix_qmake_libtool@
qmakeFlags=( ${qmakeFlags-} )
qmakePrePhase() {
qmakeFlags_orig=( "${qmakeFlags[@]}" )
# These flags must be added _before_ the flags specified in the derivation.
qmakeFlags=( \
"PREFIX=$out" \
"NIX_OUTPUT_OUT=$out" \
"NIX_OUTPUT_DEV=${!outputDev}" \
"NIX_OUTPUT_BIN=${!outputBin}" \
"NIX_OUTPUT_DOC=${!outputDev}/${qtDocPrefix:?}" \
"NIX_OUTPUT_QML=${!outputBin}/${qtQmlPrefix:?}" \
"NIX_OUTPUT_PLUGIN=${!outputBin}/${qtPluginPrefix:?}" \
)
prependToVar qmakeFlags \
"PREFIX=$out" \
"NIX_OUTPUT_OUT=$out" \
"NIX_OUTPUT_DEV=${!outputDev}" \
"NIX_OUTPUT_BIN=${!outputBin}" \
"NIX_OUTPUT_DOC=${!outputDev}/${qtDocPrefix:?}" \
"NIX_OUTPUT_QML=${!outputBin}/${qtQmlPrefix:?}" \
"NIX_OUTPUT_PLUGIN=${!outputBin}/${qtPluginPrefix:?}"
if [ -n "@debug@" ]; then
qmakeFlags+=( "CONFIG+=debug" )
prependToVar qmakeFlags "CONFIG+=debug"
else
qmakeFlags+=( "CONFIG+=release" )
prependToVar qmakeFlags "CONFIG+=release"
fi
# do the stripping ourselves (needed for separateDebugInfo)
qmakeFlags+=( "CONFIG+=nostrip" )
qmakeFlags+=( "${qmakeFlags_orig[@]}" )
prependToVar qmakeFlags "CONFIG+=nostrip"
}
prePhases+=" qmakePrePhase"
qmakeConfigurePhase() {
runHook preConfigure
local flagsArray=()
concatTo flagsArray qmakeFlags
echo "QMAKEPATH=$QMAKEPATH"
echo qmake "${qmakeFlags[@]}"
qmake "${qmakeFlags[@]}"
echo qmake "${flagsArray[@]}"
qmake "${flagsArray[@]}"
if ! [[ -v enableParallelBuilding ]]; then
enableParallelBuilding=1

View File

@ -1 +1 @@
qmakeFlags+=( "QMAKE_LRELEASE=@dev@/bin/lrelease" )
appendToVar qmakeFlags "QMAKE_LRELEASE=@dev@/bin/lrelease"

View File

@ -1,33 +1,29 @@
. @fix_qmake_libtool@
qmakeFlags=(${qmakeFlags-})
qmakePrePhase() {
qmakeFlags_orig=("${qmakeFlags[@]}")
# These flags must be added _before_ the flags specified in the derivation.
# TODO: these flags also need a patch which isn't applied
# can we either remove these flags or update the qt5 patch?
# "NIX_OUTPUT_DOC=${!outputDev}/${qtDocPrefix:?}" \
qmakeFlags=(
"PREFIX=$out"
"NIX_OUTPUT_OUT=$out"
"NIX_OUTPUT_DEV=${!outputDev}"
"NIX_OUTPUT_BIN=${!outputBin}"
"NIX_OUTPUT_QML=${!outputBin}/${qtQmlPrefix:?}"
"NIX_OUTPUT_PLUGIN=${!outputBin}/${qtPluginPrefix:?}"
)
qmakeFlags+=("${qmakeFlags_orig[@]}")
prependToVar qmakeFlags \
"PREFIX=$out" \
"NIX_OUTPUT_OUT=$out" \
"NIX_OUTPUT_DEV=${!outputDev}" \
"NIX_OUTPUT_BIN=${!outputBin}" \
"NIX_OUTPUT_QML=${!outputBin}/${qtQmlPrefix:?}" \
"NIX_OUTPUT_PLUGIN=${!outputBin}/${qtPluginPrefix:?}"
}
prePhases+=" qmakePrePhase"
qmakeConfigurePhase() {
runHook preConfigure
local flagsArray=()
concatTo flagsArray qmakeFlags
echo "QMAKEPATH=$QMAKEPATH"
echo qmake "${qmakeFlags[@]}"
qmake "${qmakeFlags[@]}"
echo qmake "${flagsArray[@]}"
qmake "${flagsArray[@]}"
if ! [[ -v enableParallelBuilding ]]; then
enableParallelBuilding=1

View File

@ -23,7 +23,10 @@ preConfigure() {
fi
done
perl Makefile.PL PREFIX=$out INSTALLDIRS=site $makeMakerFlags PERL=$(type -P perl) FULLPERL=\"$fullperl/bin/perl\"
local flagsArray=()
concatTo flagsArray makeMakerFlags
perl Makefile.PL PREFIX=$out INSTALLDIRS=site "${flagsArray[@]}" PERL=$(type -P perl) FULLPERL=\"$fullperl/bin/perl\"
}
if test -n "$perlPreHook"; then

View File

@ -1,3 +1,5 @@
# shellcheck shell=bash
build2ConfigurePhase() {
runHook preConfigure
@ -16,9 +18,10 @@ build2ConfigurePhase() {
"config.install.man=${!outputDoc}/share/man"
"config.install.sbin=${!outputBin}/sbin"
"config.install.bin.mode=755"
$build2ConfigureFlags "${build2ConfigureFlagsArray[@]}"
)
concatTo flagsArray build2ConfigureFlags build2ConfigureFlagsArray
# shellcheck disable=SC2157
if [ -n "@isTargetDarwin@" ]; then
flagsArray+=("config.bin.ld=ld64-lld")
flagsArray+=("config.cc.loptions+=-fuse-ld=lld")
@ -35,9 +38,8 @@ build2ConfigurePhase() {
build2BuildPhase() {
runHook preBuild
local flagsArray=(
$build2BuildFlags "${build2BuildFlagsArray[@]}"
)
local flagsArray=()
concatTo flagsArray build2BuildFlags build2BuildFlagsArray
echo 'build flags' "${flagsArray[@]}"
b "${flagsArray[@]}"
@ -48,13 +50,12 @@ build2BuildPhase() {
build2CheckPhase() {
runHook preCheck
local flagsArray=(
$build2CheckFlags "${build2CheckFlags[@]}"
)
local flagsArray=()
concatTo flagsArray build2CheckFlags build2CheckFlags
echo 'check flags' "${flagsArray[@]}"
b test ${build2Dir:-.} "${flagsArray[@]}"
b test "${build2Dir:-.}" "${flagsArray[@]}"
runHook postCheck
}
@ -62,10 +63,8 @@ build2CheckPhase() {
build2InstallPhase() {
runHook preInstall
local flagsArray=(
$build2InstallFlags "${build2InstallFlagsArray[@]}"
${installTargets:-}
)
local flagsArray=()
concatTo flagsArray build2InstallFlags build2InstallFlagsArray installTargets
echo 'install flags' "${flagsArray[@]}"
b install "${flagsArray[@]}"
@ -73,19 +72,20 @@ build2InstallPhase() {
runHook postInstall
}
if [ -z "${dontUseBuild2Configure-}" -a -z "${configurePhase-}" ]; then
if [ -z "${dontUseBuild2Configure-}" ] && [ -z "${configurePhase-}" ]; then
# shellcheck disable=SC2034
setOutputFlags=
configurePhase=build2ConfigurePhase
fi
if [ -z "${dontUseBuild2Build-}" -a -z "${buildPhase-}" ]; then
if [ -z "${dontUseBuild2Build-}" ] && [ -z "${buildPhase-}" ]; then
buildPhase=build2BuildPhase
fi
if [ -z "${dontUseBuild2Check-}" -a -z "${checkPhase-}" ]; then
if [ -z "${dontUseBuild2Check-}" ] && [ -z "${checkPhase-}" ]; then
checkPhase=build2CheckPhase
fi
if [ -z "${dontUseBuild2Install-}" -a -z "${installPhase-}" ]; then
if [ -z "${dontUseBuild2Install-}" ] && [ -z "${installPhase-}" ]; then
installPhase=build2InstallPhase
fi

View File

@ -1,14 +1,20 @@
# shellcheck shell=bash
gnConfigurePhase() {
runHook preConfigure
echo "gn flags: $gnFlags ${gnFlagsArray[@]}"
local flagsArray=()
concatTo flagsArray gnFlags gnFlagsArray
gn gen out/Release --args="$gnFlags ${gnFlagsArray[@]}"
echoCmd 'gn flags' "${flagsArray[@]}"
gn gen out/Release --args="${flagsArray[*]}"
# shellcheck disable=SC2164
cd out/Release/
runHook postConfigure
}
if [ -z "${dontUseGnConfigure-}" -a -z "${configurePhase-}" ]; then
if [ -z "${dontUseGnConfigure-}" ] && [ -z "${configurePhase-}" ]; then
configurePhase=gnConfigurePhase
fi

View File

@ -1,11 +1,12 @@
# shellcheck shell=bash
premakeConfigurePhase() {
runHook preConfigure
local flagsArray=(
${premakefile:+--file=$premakefile}
$premakeFlags ${premakeFlagsArray[@]}
${premakeBackend:-gmake}
)
concatTo flagsArray premakeFlags premakeFlagsArray premakeBackend=gmake
echoCmd 'configure flags' "${flagsArray[@]}"

View File

@ -387,12 +387,16 @@ appendToVar() {
# Accumulate flags from the named variables $2+ into the indexed array $1.
#
# Arrays are simply concatenated, strings are split on whitespace.
# Default values can be passed via name=default.
concatTo() {
local -n targetref="$1"; shift
local name type
for name in "$@"; do
if type=$(declare -p "$name" 2> /dev/null); then
local -n nameref="$name"
local arg default name type
for arg in "$@"; do
IFS="=" read -r name default <<< "$arg"
local -n nameref="$name"
if [[ ! -n "${nameref[@]}" && -n "$default" ]]; then
targetref+=( "$default" )
elif type=$(declare -p "$name" 2> /dev/null); then
case "${type#* }" in
-A*)
echo "concatTo(): ERROR: trying to use concatTo on an associative array." >&2
@ -1340,8 +1344,7 @@ patchPhase() {
esac
local -a flagsArray
: "${patchFlags:=-p1}"
concatTo flagsArray patchFlags
concatTo flagsArray patchFlags=-p1
# "2>&1" is a hack to make patch fail if the decompressor fails (nonexistent patch, etc.)
# shellcheck disable=SC2086
$uncompress < "$i" 2>&1 | patch "${flagsArray[@]}"
@ -1493,8 +1496,7 @@ checkPhase() {
SHELL="$SHELL"
)
: "${checkFlags:=VERBOSE=y}"
concatTo flagsArray makeFlags makeFlagsArray checkFlags checkFlagsArray checkTarget
concatTo flagsArray makeFlags makeFlagsArray checkFlags=VERBOSE=y checkFlagsArray checkTarget
echoCmd 'check flags' "${flagsArray[@]}"
make ${makefile:+-f $makefile} "${flagsArray[@]}"
@ -1528,8 +1530,7 @@ installPhase() {
SHELL="$SHELL"
)
: "${installTargets:=install}"
concatTo flagsArray makeFlags makeFlagsArray installFlags installFlagsArray installTargets
concatTo flagsArray makeFlags makeFlagsArray installFlags installFlagsArray installTargets=install
echoCmd 'install flags' "${flagsArray[@]}"
make ${makefile:+-f $makefile} "${flagsArray[@]}"
@ -1612,9 +1613,8 @@ installCheckPhase() {
SHELL="$SHELL"
)
: "${installCheckTarget:=installcheck}"
concatTo flagsArray makeFlags makeFlagsArray \
installCheckFlags installCheckFlagsArray installCheckTarget
installCheckFlags installCheckFlagsArray installCheckTarget=installcheck
echoCmd 'installcheck flags' "${flagsArray[@]}"
make ${makefile:+-f $makefile} "${flagsArray[@]}"
@ -1629,8 +1629,7 @@ distPhase() {
runHook preDist
local flagsArray=()
: "${distTarget:=dist}"
concatTo flagsArray distFlags distFlagsArray distTarget
concatTo flagsArray distFlags distFlagsArray distTarget=dist
echo 'dist flags: %q' "${flagsArray[@]}"
make ${makefile:+-f $makefile} "${flagsArray[@]}"

View File

@ -109,21 +109,30 @@ let
declare -A associativeArray=(["X"]="Y")
[[ $(concatTo nowhere associativeArray 2>&1) =~ "trying to use" ]] || (echo "concatTo did not throw concatenating associativeArray" && false)
empty_array=()
empty_string=""
declare -a flagsArray
concatTo flagsArray string list
concatTo flagsArray string list notset=e=f empty_array=g empty_string=h
declare -p flagsArray
[[ "''${flagsArray[0]}" == "a" ]] || (echo "'\$flagsArray[0]' was not 'a'" && false)
[[ "''${flagsArray[1]}" == "b" ]] || (echo "'\$flagsArray[1]' was not 'b'" && false)
[[ "''${flagsArray[2]}" == "c" ]] || (echo "'\$flagsArray[2]' was not 'c'" && false)
[[ "''${flagsArray[3]}" == "d" ]] || (echo "'\$flagsArray[3]' was not 'd'" && false)
[[ "''${flagsArray[4]}" == "e=f" ]] || (echo "'\$flagsArray[4]' was not 'e=f'" && false)
[[ "''${flagsArray[5]}" == "g" ]] || (echo "'\$flagsArray[5]' was not 'g'" && false)
[[ "''${flagsArray[6]}" == "h" ]] || (echo "'\$flagsArray[6]' was not 'h'" && false)
# test concatenating to unset variable
concatTo nonExistant string list
concatTo nonExistant string list notset=e=f empty_array=g empty_string=h
declare -p nonExistant
[[ "''${nonExistant[0]}" == "a" ]] || (echo "'\$nonExistant[0]' was not 'a'" && false)
[[ "''${nonExistant[1]}" == "b" ]] || (echo "'\$nonExistant[1]' was not 'b'" && false)
[[ "''${nonExistant[2]}" == "c" ]] || (echo "'\$nonExistant[2]' was not 'c'" && false)
[[ "''${nonExistant[3]}" == "d" ]] || (echo "'\$nonExistant[3]' was not 'd'" && false)
[[ "''${nonExistant[4]}" == "e=f" ]] || (echo "'\$nonExistant[4]' was not 'e=f'" && false)
[[ "''${nonExistant[5]}" == "g" ]] || (echo "'\$nonExistant[5]' was not 'g'" && false)
[[ "''${nonExistant[6]}" == "h" ]] || (echo "'\$nonExistant[6]' was not 'h'" && false)
eval "$extraTest"