stdenvMulti: Set the configure/install flags in the pre-hook
Flags like $(dev)/include don't always get expanded, e.g. leading to incorrect pkgconfig files. So set them in the pre-hook.
This commit is contained in:
parent
283164779b
commit
c642f84838
@ -6,30 +6,34 @@ with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation (args // {
|
||||
|
||||
configureFlags =
|
||||
optionals (elem "bin" outputs)
|
||||
[ "--bindir=$(bin)/bin" "--mandir=$(bin)/share/man" ]
|
||||
++ optionals (elem "lib" outputs)
|
||||
[ "--libdir=$(lib)/lib" ]
|
||||
++ optional (elem "dev" outputs)
|
||||
"--includedir=$(dev)/include"
|
||||
++ [ (toString args.configureFlags or []) ];
|
||||
|
||||
installFlags =
|
||||
optionals (elem "dev" outputs)
|
||||
[ "pkgconfigdir=$(dev)/lib/pkgconfig" "m4datadir=$(dev)/share/aclocal" "aclocaldir=$(dev)/share/aclocal" ]
|
||||
++ [ (toString args.installFlags or []) ];
|
||||
|
||||
#postPhases = [ "fixupOutputsPhase" ] ++ args.postPhases or [];
|
||||
|
||||
preHook =
|
||||
''
|
||||
${optionalString (elem "bin" outputs) ''
|
||||
configureFlags="--bindir=$bin/bin --mandir=$bin/share/man $configureFlags"
|
||||
''}
|
||||
${optionalString (elem "lib" outputs) ''
|
||||
configureFlags="--libdir=$lib/lib $configureFlags"
|
||||
''}
|
||||
${optionalString (elem "dev" outputs) ''
|
||||
configureFlags="--includedir=$dev/include $configureFlags"
|
||||
installFlags="pkgconfigdir=$dev/lib/pkgconfig m4datadir=$dev/share/aclocal aclocaldir=$dev/share/aclocal $installFlags"
|
||||
''}
|
||||
'';
|
||||
|
||||
preFixup =
|
||||
''
|
||||
runHook preFixupOutputs
|
||||
|
||||
if [ -n "$doc" -a -e $out/share/doc ]; then
|
||||
mkdir -p $doc/share/doc
|
||||
mv $out/share/doc/* $doc/share/doc
|
||||
rmdir $out/share/doc
|
||||
if [ -n "$doc" ]; then
|
||||
for i in share/doc share/gtk-doc; do
|
||||
if [ -e $out/$i ]; then
|
||||
mkdir -p $doc/$i
|
||||
mv $out/$i/* $doc/$i/
|
||||
rmdir $out/$i
|
||||
fi
|
||||
done
|
||||
rmdir --ignore-fail-on-non-empty $out/share
|
||||
fi
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user