treewide: Use pkgs/build-support/roles.bash to remove copy pasta

Also fix some setup hooks that unnecessarily used environment hooks,
which revolted in the same variable being modified too many times.
This commit is contained in:
John Ericson 2018-05-07 13:07:19 -04:00
parent 34a3233a2e
commit 2110c0bd30
29 changed files with 203 additions and 261 deletions

View File

@ -190,7 +190,12 @@ stdenv.mkDerivation {
depsTargetTargetPropagated = extraPackages; depsTargetTargetPropagated = extraPackages;
setupHook = ./setup-hook.sh; wrapperName = "BINTOOLS_WRAPPER";
setupHooks = [
../setup-hooks/role.bash
./setup-hook.sh
];
postFixup = postFixup =
'' ''

View File

@ -11,44 +11,22 @@ set -u
[[ -z ${crossConfig-} ]] || (( "$hostOffset" < 0 )) || return 0 [[ -z ${crossConfig-} ]] || (( "$hostOffset" < 0 )) || return 0
bintoolsWrapper_addLDVars () { bintoolsWrapper_addLDVars () {
case $depHostOffset in # See ../setup-hooks/role.bash
-1) local role='BUILD_' ;; local role_post role_pre
0) local role='' ;; getTargetRoleEnvHook
1) local role='TARGET_' ;;
*) echo "bintools-wrapper: Error: Cannot be used with $depHostOffset-offset deps" >2;
return 1 ;;
esac
if [[ -d "$1/lib64" && ! -L "$1/lib64" ]]; then if [[ -d "$1/lib64" && ! -L "$1/lib64" ]]; then
export NIX_${role}LDFLAGS+=" -L$1/lib64" export NIX_${role_pre}LDFLAGS+=" -L$1/lib64"
fi fi
if [[ -d "$1/lib" ]]; then if [[ -d "$1/lib" ]]; then
export NIX_${role}LDFLAGS+=" -L$1/lib" export NIX_${role_pre}LDFLAGS+=" -L$1/lib"
fi fi
} }
case $targetOffset in # See ../setup-hooks/role.bash
-1) getTargetRole
export NIX_BINTOOLS_WRAPPER_@infixSalt@_TARGET_BUILD=1 getTargetRoleWrapper
role_pre='BUILD_'
role_post='_FOR_BUILD'
;;
0)
export NIX_BINTOOLS_WRAPPER_@infixSalt@_TARGET_HOST=1
role_pre=''
role_post=''
;;
1)
export NIX_BINTOOLS_WRAPPER_@infixSalt@_TARGET_TARGET=1
role_pre='TARGET_'
role_post='_FOR_TARGET'
;;
*)
echo "cc-wrapper: used as improper sort of dependency" >2;
return 1
;;
esac
addEnvHooks "$targetOffset" bintoolsWrapper_addLDVars addEnvHooks "$targetOffset" bintoolsWrapper_addLDVars

View File

@ -191,7 +191,12 @@ stdenv.mkDerivation {
propagatedBuildInputs = [ bintools ]; propagatedBuildInputs = [ bintools ];
depsTargetTargetPropagated = extraPackages; depsTargetTargetPropagated = extraPackages;
setupHook = ./setup-hook.sh; wrapperName = "CC_WRAPPER";
setupHooks = [
../setup-hooks/role.bash
./setup-hook.sh
];
postFixup = postFixup =
'' ''

View File

@ -66,55 +66,22 @@ set -u
# over no state, and there's no @-substitutions within, so any redefined # over no state, and there's no @-substitutions within, so any redefined
# function is guaranteed to be exactly the same. # function is guaranteed to be exactly the same.
ccWrapper_addCVars () { ccWrapper_addCVars () {
# The `depHostOffset` describes how the host platform of the dependencies # See ../setup-hooks/role.bash
# are slid relative to the depending package. It is brought into scope of local role_post role_pre
# the environment hook defined as the role of the dependency being applied. getTargetRoleEnvHook
case $depHostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $depHostOffset-offset deps" >2;
return 1 ;;
esac
if [[ -d "$1/include" ]]; then if [[ -d "$1/include" ]]; then
export NIX_${role}CFLAGS_COMPILE+=" ${ccIncludeFlag:--isystem} $1/include" export NIX_${role_pre}CFLAGS_COMPILE+=" ${ccIncludeFlag:--isystem} $1/include"
fi fi
if [[ -d "$1/Library/Frameworks" ]]; then if [[ -d "$1/Library/Frameworks" ]]; then
export NIX_${role}CFLAGS_COMPILE+=" -F$1/Library/Frameworks" export NIX_${role_pre}CFLAGS_COMPILE+=" -F$1/Library/Frameworks"
fi fi
} }
# Since the same cc-wrapper derivation can be depend on in multiple ways, we # See ../setup-hooks/role.bash
# need to accumulate *each* role (i.e. target platform relative the depending getTargetRole
# derivation) in which the cc-wrapper derivation is used. getTargetRoleWrapper
# `NIX_CC_WRAPPER_@infixSalt@_TARGET_*` tracks this (needs to be an exported env
# var so can't use fancier data structures).
#
# We also need to worry about what role is being added on *this* invocation of
# setup-hook, which `role` tracks.
case $targetOffset in
-1)
export NIX_CC_WRAPPER_@infixSalt@_TARGET_BUILD=1
role_pre='BUILD_'
role_post='_FOR_BUILD'
;;
0)
export NIX_CC_WRAPPER_@infixSalt@_TARGET_HOST=1
role_pre=''
role_post=''
;;
1)
export NIX_CC_WRAPPER_@infixSalt@_TARGET_TARGET=1
role_pre='TARGET_'
role_post='_FOR_TARGET'
;;
*)
echo "cc-wrapper: used as improper sort of dependency" >2;
return 1
;;
esac
# We use the `targetOffset` to choose the right env hook to accumulate the right # We use the `targetOffset` to choose the right env hook to accumulate the right
# sort of deps (those with that offset). # sort of deps (those with that offset).

View File

@ -0,0 +1,75 @@
# Since the same derivation can be depend on in multiple ways, we need to
# accumulate *each* role (i.e. host and target platforms relative the depending
# derivation) in which the derivation is used.
#
# The role is intened to be use as part of other variables names like
# - $NIX_${role_pre}_SOMETHING
# - $NIX_SOMETHING_${role_post}
function getRole() {
case $1 in
-1)
role_pre='BUILD_'
role_post='_FOR_BUILD'
;;
0)
role_pre=''
role_post=''
;;
1)
role_pre='TARGET_'
role_post='_FOR_TARGET'
;;
*)
echo "@name@: used as improper sort of dependency" >2
return 1
;;
esac
}
# `hostOffset` describes how the host platform of the package is slid relative
# to the depending package. `targetOffset` likewise describes the target
# platform of the package. Both are brought into scope of the setup hook defined
# for dependency whose setup hook is being processed relative to the package
# being built.
function getHostRole() {
getRole "$hostOffset"
}
function getTargetRole() {
getRole "$targetOffset"
}
# `depHostOffset` describes how the host platform of the dependencies are slid
# relative to the depending package. `depTargetOffset` likewise describes the
# target platform of dependenices. Both are brought into scope of the
# environment hook defined for the dependency being applied relative to the
# package being built.
function getHostRoleEnvHook() {
getRole "$depHostOffset"
}
function getTargetRoleEnvHook() {
getRole "$depTargetOffset"
}
# This variant is inteneded specifically for code-prodocing tool wrapper scripts
# `NIX_@wrapperName@_@infixSalt@_TARGET_*` tracks this (needs to be an exported
# env var so can't use fancier data structures).
function getTargetRoleWrapper() {
case $targetOffset in
-1)
export NIX_@wrapperName@_@infixSalt@_TARGET_BUILD=1
;;
0)
export NIX_@wrapperName@_@infixSalt@_TARGET_HOST=1
;;
1)
export NIX_@wrapperName@_@infixSalt@_TARGET_TARGET=1
;;
*)
echo "@name@: used as improper sort of dependency" >2
return 1
;;
esac
}

View File

@ -1,13 +1,5 @@
# The `hostOffset` describes how the host platform of the dependencies are slid # See pkgs/build-support/setup-hooks/role.bash
# relative to the depending package. It is brought into scope of the setup hook getHostRole
# defined as the role of the dependency whose hooks is being run.
case $hostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $hostOffset-offset deps" >2;
return 1 ;;
esac
export NIX_${role}CXXSTDLIB_COMPILE+=" -isystem $(echo -n @gcc@/include/c++/*) -isystem $(echo -n @gcc@/include/c++/*)/$(@gcc@/bin/gcc -dumpmachine)" export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem $(echo -n @gcc@/include/c++/*) -isystem $(echo -n @gcc@/include/c++/*)/$(@gcc@/bin/gcc -dumpmachine)"
export NIX_${role}CXXSTDLIB_LINK=" -stdlib=libstdc++" export NIX_${role_pre}CXXSTDLIB_LINK=" -stdlib=libstdc++"

View File

@ -39,7 +39,10 @@ stdenv.mkDerivation rec {
linkCxxAbi = stdenv.isLinux; linkCxxAbi = stdenv.isLinux;
setupHook = ./setup-hook.sh; setupHooks = [
../../../../../build-support/setup-hooks/role.bash
./setup-hook.sh
];
meta = { meta = {
homepage = http://libcxx.llvm.org/; homepage = http://libcxx.llvm.org/;

View File

@ -1,14 +1,6 @@
# The `hostOffset` describes how the host platform of the dependencies are slid # See pkgs/build-support/setup-hooks/role.bash
# relative to the depending package. It is brought into scope of the setup hook getHostRole
# defined as the role of the dependency whose hooks is being run.
case $hostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $hostOffset-offset deps" >2;
return 1 ;;
esac
linkCxxAbi="@linkCxxAbi@" linkCxxAbi="@linkCxxAbi@"
export NIX_${role}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1" export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}" export NIX_${role_pre}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"

View File

@ -33,7 +33,10 @@ stdenv.mkDerivation rec {
linkCxxAbi = stdenv.isLinux; linkCxxAbi = stdenv.isLinux;
setupHook = ./setup-hook.sh; setupHooks = [
../../../../../build-support/setup-hooks/role.bash
./setup-hook.sh
];
meta = { meta = {
homepage = http://libcxx.llvm.org/; homepage = http://libcxx.llvm.org/;

View File

@ -1,14 +1,6 @@
# The `hostOffset` describes how the host platform of the dependencies are slid # See pkgs/build-support/setup-hooks/role.bash
# relative to the depending package. It is brought into scope of the setup hook getHostRole
# defined as the role of the dependency whose hooks is being run.
case $hostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $hostOffset-offset deps" >2;
return 1 ;;
esac
linkCxxAbi="@linkCxxAbi@" linkCxxAbi="@linkCxxAbi@"
export NIX_${role}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1" export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}" export NIX_${role_pre}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"

View File

@ -31,7 +31,10 @@ stdenv.mkDerivation rec {
linkCxxAbi = stdenv.isLinux; linkCxxAbi = stdenv.isLinux;
setupHook = ./setup-hook.sh; setupHooks = [
../../../../../build-support/setup-hooks/role.bash
./setup-hook.sh
];
meta = { meta = {
homepage = http://libcxx.llvm.org/; homepage = http://libcxx.llvm.org/;

View File

@ -1,14 +1,6 @@
# The `hostOffset` describes how the host platform of the dependencies # See pkgs/build-support/setup-hooks/role.bash
# relative to the depending package. It is brought into scope of the setup hook getHostRole
# defined as the role of the dependency whose hooks is being run.
case $hostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $hostOffset-offset deps" >2;
return 1 ;;
esac
linkCxxAbi="@linkCxxAbi@" linkCxxAbi="@linkCxxAbi@"
export NIX_${role}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1" export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}" export NIX_${role_pre}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"

View File

@ -31,7 +31,10 @@ stdenv.mkDerivation rec {
linkCxxAbi = stdenv.isLinux; linkCxxAbi = stdenv.isLinux;
setupHook = ./setup-hook.sh; setupHooks = [
../../../../../build-support/setup-hooks/role.bash
./setup-hook.sh
];
meta = { meta = {
homepage = http://libcxx.llvm.org/; homepage = http://libcxx.llvm.org/;

View File

@ -1,14 +1,6 @@
# The `hostOffset` describes how the host platform of the dependencies # See pkgs/build-support/setup-hooks/role.bash
# relative to the depending package. It is brought into scope of the setup hook getHostRole
# defined as the role of the dependency whose hooks is being run.
case $hostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $hostOffset-offset deps" >2;
return 1 ;;
esac
linkCxxAbi="@linkCxxAbi@" linkCxxAbi="@linkCxxAbi@"
export NIX_${role}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1" export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}" export NIX_${role_pre}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"

View File

@ -44,7 +44,10 @@ stdenv.mkDerivation rec {
linkCxxAbi = stdenv.isLinux; linkCxxAbi = stdenv.isLinux;
setupHook = ./setup-hook.sh; setupHooks = [
../../../../../build-support/setup-hooks/role.bash
./setup-hook.sh
];
meta = { meta = {
homepage = http://libcxx.llvm.org/; homepage = http://libcxx.llvm.org/;

View File

@ -1,14 +1,6 @@
# The `hostOffset` describes how the host platform of the dependencies # See pkgs/build-support/setup-hooks/role.bash
# relative to the depending package. It is brought into scope of the setup hook getHostRole
# defined as the role of the dependency whose hooks is being run.
case $hostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $hostOffset-offset deps" >2;
return 1 ;;
esac
linkCxxAbi="@linkCxxAbi@" linkCxxAbi="@linkCxxAbi@"
export NIX_${role}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1" export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}" export NIX_${role_pre}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"

View File

@ -40,7 +40,10 @@ stdenv.mkDerivation rec {
linkCxxAbi = stdenv.isLinux; linkCxxAbi = stdenv.isLinux;
setupHook = ./setup-hook.sh; setupHooks = [
../../../../../build-support/setup-hooks/role.bash
./setup-hook.sh
];
meta = { meta = {
homepage = http://libcxx.llvm.org/; homepage = http://libcxx.llvm.org/;

View File

@ -1,14 +1,6 @@
# The `hostOffset` describes how the host platform of the dependencies # See pkgs/build-support/setup-hooks/role.bash
# relative to the depending package. It is brought into scope of the setup hook getHostRole
# defined as the role of the dependency whose hooks is being run.
case $hostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $hostOffset-offset deps" >2;
return 1 ;;
esac
linkCxxAbi="@linkCxxAbi@" linkCxxAbi="@linkCxxAbi@"
export NIX_${role}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1" export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}" export NIX_${role_pre}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"

View File

@ -40,7 +40,10 @@ stdenv.mkDerivation rec {
linkCxxAbi = stdenv.isLinux; linkCxxAbi = stdenv.isLinux;
setupHook = ./setup-hook.sh; setupHooks = [
../../../../../build-support/setup-hooks/role.bash
./setup-hook.sh
];
meta = { meta = {
homepage = http://libcxx.llvm.org/; homepage = http://libcxx.llvm.org/;

View File

@ -1,14 +1,6 @@
# The `hostOffset` describes how the host platform of the dependencies # See pkgs/build-support/setup-hooks/role.bash
# relative to the depending package. It is brought into scope of the setup hook getHostRole
# defined as the role of the dependency whose hooks is being run.
case $hostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $hostOffset-offset deps" >2;
return 1 ;;
esac
linkCxxAbi="@linkCxxAbi@" linkCxxAbi="@linkCxxAbi@"
export NIX_${role}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1" export NIX_${role_pre}CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1"
export NIX_${role}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}" export NIX_${role_pre}CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}"

View File

@ -48,7 +48,10 @@ stdenv.mkDerivation rec {
# HACK, see #10874 (and 14664) # HACK, see #10874 (and 14664)
buildInputs = stdenv.lib.optional (!stdenv.isLinux && !hostPlatform.isCygwin) libiconv; buildInputs = stdenv.lib.optional (!stdenv.isLinux && !hostPlatform.isCygwin) libiconv;
setupHook = ./gettext-setup-hook.sh; setupHooks = [
../../../build-support/setup-hooks/role.bash
./gettext-setup-hook.sh
];
gettextNeedsLdflags = hostPlatform.libc != "glibc" && !hostPlatform.isMusl; gettextNeedsLdflags = hostPlatform.libc != "glibc" && !hostPlatform.isMusl;
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -1,6 +1,8 @@
gettextDataDirsHook() { gettextDataDirsHook() {
# See pkgs/build-support/setup-hooks/role.bash
getHostRoleEnvHook
if [ -d "$1/share/gettext" ]; then if [ -d "$1/share/gettext" ]; then
addToSearchPath GETTEXTDATADIRS "$1/share/gettext" addToSearchPath "GETTEXTDATADIRS${role_post}" "$1/share/gettext"
fi fi
} }
@ -8,21 +10,8 @@ addEnvHooks "$hostOffset" gettextDataDirsHook
# libintl must be listed in load flags on non-Glibc # libintl must be listed in load flags on non-Glibc
# it doesn't hurt to have it in Glibc either though # it doesn't hurt to have it in Glibc either though
gettextLdflags() {
# The `depHostOffset` describes how the host platform of the dependencies
# are slid relative to the depending package. It is brought into scope of
# the environment hook defined as the role of the dependency being applied.
case $depHostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $depHostOffset-offset deps" >2;
return 1 ;;
esac
export NIX_${role}LDFLAGS+=" -lintl"
}
if [ ! -z "@gettextNeedsLdflags@" ]; then if [ ! -z "@gettextNeedsLdflags@" ]; then
addEnvHooks "$hostOffset" gettextLdflags # See pkgs/build-support/setup-hooks/role.bash
getHostRole
export NIX_${role_pre}LDFLAGS+=" -lintl"
fi fi

View File

@ -14,7 +14,10 @@ stdenv.mkDerivation rec {
sha256 = "0y1ij745r4p48mxq84rax40p10ln7fc7m243p8k8sia519i3dxfc"; sha256 = "0y1ij745r4p48mxq84rax40p10ln7fc7m243p8k8sia519i3dxfc";
}; };
setupHook = ./setup-hook.sh; setupHooks = [
../../../build-support/setup-hooks/role.bash
./setup-hook.sh
];
postPatch = postPatch =
lib.optionalString ((hostPlatform != buildPlatform && hostPlatform.libc == "msvcrt") || stdenv.cc.nativeLibc) lib.optionalString ((hostPlatform != buildPlatform && hostPlatform.libc == "msvcrt") || stdenv.cc.nativeLibc)

View File

@ -1,18 +1,6 @@
# libiconv must be listed in load flags on non-Glibc # libiconv must be listed in load flags on non-Glibc
# it doesn't hurt to have it in Glibc either though # it doesn't hurt to have it in Glibc either though
iconvLdflags() {
# The `depHostOffset` describes how the host platform of the dependencies
# are slid relative to the depending package. It is brought into scope of
# the environment hook defined as the role of the dependency being applied.
case $depHostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $depHostOffset-offset deps" >2;
return 1 ;;
esac
export NIX_${role}LDFLAGS+=" -liconv" # See pkgs/build-support/setup-hooks/role.bash
} getHostRole
export NIX_${role_pre}LDFLAGS+=" -liconv"
addEnvHooks "$hostOffset" iconvLdflags

View File

@ -1,18 +1,6 @@
setupCompatFlags() { # See pkgs/build-support/setup-hooks/role.bash
# The `depHostOffset` describes how the host platform of the dependencies getHostRole
# are slid relative to the depending package. It is brought into scope of
# the environment hook defined as the role of the dependency being applied.
case $depHostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $depHostOffset-offset deps" >2;
return 1 ;;
esac
export NIX_${role}LDFLAGS+=" -lnbcompat" export NIX_${role_pre}LDFLAGS+=" -lnbcompat"
export NIX_${role}CFLAGS_COMPILE+=" -DHAVE_NBTOOL_CONFIG_H" export NIX_${role_pre}CFLAGS_COMPILE+=" -DHAVE_NBTOOL_CONFIG_H"
export NIX_${role}CFLAGS_COMPILE+=" -include nbtool_config.h" export NIX_${role_pre}CFLAGS_COMPILE+=" -include nbtool_config.h"
}
addEnvHooks "$hostOffset" setupCompatFlags

View File

@ -167,7 +167,10 @@ let
sha256 = "17phkfafybxwhzng44k5bhmag6i55br53ky1nwcmw583kg2fa86z"; sha256 = "17phkfafybxwhzng44k5bhmag6i55br53ky1nwcmw583kg2fa86z";
version = "7.1.2"; version = "7.1.2";
setupHook = ./compat-setup-hook.sh; setupHooks = [
../../../build-support/setup-hooks/role.bash
./compat-setup-hook.sh
];
# override defaults to prevent infinite recursion # override defaults to prevent infinite recursion
nativeBuildInputs = [ makeMinimal ]; nativeBuildInputs = [ makeMinimal ];
@ -270,7 +273,10 @@ let
runHook postInstall runHook postInstall
''; '';
setupHook = ./fts-setup-hook.sh; setupHooks = [
../../../build-support/setup-hooks/role.bash
./fts-setup-hook.sh
];
}; };
stat = netBSDDerivation { stat = netBSDDerivation {

View File

@ -1,16 +1,4 @@
ftsLdflags() { # See pkgs/build-support/setup-hooks/role.bash
# The `depHostOffset` describes how the host platform of the dependencies getHostRole
# are slid relative to the depending package. It is brought into scope of
# the environment hook defined as the role of the dependency being applied.
case $depHostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $depHostOffset-offset deps" >2;
return 1 ;;
esac
export NIX_${role}LDFLAGS+=" -lfts" export NIX_${role_pre}LDFLAGS+=" -lfts"
}
addEnvHooks "$hostOffset" ftsLdflags

View File

@ -1,17 +1,4 @@
ftsLdflags() { # See pkgs/build-support/setup-hooks/role.bash
# The `depHostOffset` describes how the host platform of the dependencies getHostRole
# are slid relative to the depending package. It is brought into scope of
# the environment hook defined as the role of the dependency being applied.
case $depHostOffset in
-1) local role='BUILD_' ;;
0) local role='' ;;
1) local role='TARGET_' ;;
*) echo "cc-wrapper: Error: Cannot be used with $depHostOffset-offset deps" >2;
return 1 ;;
esac
export NIX_${role}LDFLAGS+=" -lfts"
}
addEnvHooks "$hostOffset" ftsLdflags
export NIX_${role_pre}LDFLAGS+=" -lfts"

View File

@ -12,5 +12,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoreconfHook pkgconfig ]; nativeBuildInputs = [ autoreconfHook pkgconfig ];
setupHook = ./fts-setup-hook.sh; setupHooks = [
../../../build-support/setup-hooks/role.bash
./fts-setup-hook.sh
];
} }