3
0
Fork 0
forked from mirrors/nixpkgs

Merge branch 'response-files' of git://github.com/corngood/nixpkgs into staging

This commit is contained in:
Shea Levy 2016-10-31 10:07:30 -04:00
commit 225602d9f2
3 changed files with 26 additions and 2 deletions

View file

@ -24,7 +24,7 @@ nonFlagArgs=0
[[ "@prog@" = *++ ]] && isCpp=1 || isCpp=0
cppInclude=1
params=("$@")
expandResponseParams "$@"
n=0
while [ $n -lt ${#params[*]} ]; do
p=${params[n]}

View file

@ -16,7 +16,7 @@ source @out@/nix-support/utils.sh
# Optionally filter out paths not refering to the store.
params=("$@")
expandResponseParams "$@"
if [ "$NIX_ENFORCE_PURITY" = 1 -a -n "$NIX_STORE" \
-a \( -z "$NIX_IGNORE_LD_THROUGH_GCC" -o -z "$NIX_LDFLAGS_SET" \) ]; then
rest=()

View file

@ -22,3 +22,27 @@ badPath() {
"${p:0:4}" != "/tmp" -a \
"${p:0:${#NIX_BUILD_TOP}}" != "$NIX_BUILD_TOP"
}
expandResponseParams() {
local inparams=("$@")
local n=0
local p
params=()
while [ $n -lt ${#inparams[*]} ]; do
p=${inparams[n]}
case $p in
@*)
if [ -e "${p:1}" ]; then
args=$(<"${p:1}")
eval 'for arg in '$args'; do params+=("$arg"); done'
else
params+=("$p")
fi
;;
*)
params+=("$p")
;;
esac
n=$((n + 1))
done
}