mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-25 16:33:15 +00:00
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:
parent
34a3233a2e
commit
2110c0bd30
@ -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 =
|
||||||
''
|
''
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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 =
|
||||||
''
|
''
|
||||||
|
@ -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).
|
||||||
|
75
pkgs/build-support/setup-hooks/role.bash
Normal file
75
pkgs/build-support/setup-hooks/role.bash
Normal 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
|
||||||
|
}
|
@ -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++"
|
||||||
|
@ -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/;
|
||||||
|
@ -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"}"
|
||||||
|
@ -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/;
|
||||||
|
@ -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"}"
|
||||||
|
@ -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/;
|
||||||
|
@ -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"}"
|
||||||
|
@ -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/;
|
||||||
|
@ -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"}"
|
||||||
|
@ -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/;
|
||||||
|
@ -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"}"
|
||||||
|
@ -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/;
|
||||||
|
@ -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"}"
|
||||||
|
@ -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/;
|
||||||
|
@ -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"}"
|
||||||
|
@ -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;
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
|
@ -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
|
|
||||||
|
@ -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
|
|
||||||
|
@ -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 {
|
||||||
|
@ -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
|
|
||||||
|
@ -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"
|
||||||
|
@ -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
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user