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 // {
|
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 [];
|
#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 =
|
preFixup =
|
||||||
''
|
''
|
||||||
runHook preFixupOutputs
|
runHook preFixupOutputs
|
||||||
|
|
||||||
if [ -n "$doc" -a -e $out/share/doc ]; then
|
if [ -n "$doc" ]; then
|
||||||
mkdir -p $doc/share/doc
|
for i in share/doc share/gtk-doc; do
|
||||||
mv $out/share/doc/* $doc/share/doc
|
if [ -e $out/$i ]; then
|
||||||
rmdir $out/share/doc
|
mkdir -p $doc/$i
|
||||||
|
mv $out/$i/* $doc/$i/
|
||||||
|
rmdir $out/$i
|
||||||
|
fi
|
||||||
|
done
|
||||||
rmdir --ignore-fail-on-non-empty $out/share
|
rmdir --ignore-fail-on-non-empty $out/share
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user