mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-26 00:43:20 +00:00
Adding generic builder management of cross compilation: envHooksHost, pkgsHost, ...
svn path=/nixpkgs/branches/stdenv-updates/; revision=18446
This commit is contained in:
parent
e7c8e8da4f
commit
4c09cfc8a3
@ -8,7 +8,7 @@ addCVars () {
|
||||
fi
|
||||
}
|
||||
|
||||
envHooks=(${envHooks[@]} addCVars)
|
||||
envHooksHost=(${envHooksHost[@]} addCVars)
|
||||
|
||||
# Note: these come *after* $out in the PATH (see setup.sh).
|
||||
|
||||
|
@ -151,14 +151,15 @@ runHook addInputsHook
|
||||
# Recursively find all build inputs.
|
||||
findInputs() {
|
||||
local pkg=$1
|
||||
local var=$2
|
||||
|
||||
case $pkgs in
|
||||
case ${!var} in
|
||||
*\ $pkg\ *)
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
|
||||
pkgs="$pkgs $pkg "
|
||||
$var="${!var} $pkg "
|
||||
|
||||
if test -f $pkg/nix-support/setup-hook; then
|
||||
source $pkg/nix-support/setup-hook
|
||||
@ -166,16 +167,20 @@ findInputs() {
|
||||
|
||||
if test -f $pkg/nix-support/propagated-build-inputs; then
|
||||
for i in $(cat $pkg/nix-support/propagated-build-inputs); do
|
||||
findInputs $i
|
||||
findInputs $i $var
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
pkgs=""
|
||||
for i in $buildInputs $propagatedBuildInputs; do
|
||||
findInputs $i
|
||||
findInputs $i pkgs
|
||||
done
|
||||
|
||||
pkgsHost=""
|
||||
for i in $hostInputs $propagatedHostInputs; do
|
||||
findInputs $i pkgsHost
|
||||
done
|
||||
|
||||
# Set the relevant environment variables to point to the build inputs
|
||||
# found above.
|
||||
@ -196,6 +201,19 @@ for i in $pkgs; do
|
||||
addToEnv $i
|
||||
done
|
||||
|
||||
addToEnvHost() {
|
||||
local pkg=$1
|
||||
|
||||
# Run the package-specific hooks set by the setup-hook scripts.
|
||||
for i in "${envHooksHost[@]}"; do
|
||||
$i $pkg
|
||||
done
|
||||
}
|
||||
|
||||
for i in $pkgsHost; do
|
||||
addToEnvHost $i
|
||||
done
|
||||
|
||||
|
||||
# Add the output as an rpath.
|
||||
if test "$NIX_NO_SELF_RPATH" != "1"; then
|
||||
|
Loading…
Reference in New Issue
Block a user