Transitive library dependencies are now propagated

svn path=/nixpkgs/trunk/; revision=29260
This commit is contained in:
Sander van der Burg 2011-09-13 21:07:08 +00:00
parent 44a7252405
commit 30872fb8cc
2 changed files with 32 additions and 1 deletions

View File

@ -33,7 +33,21 @@ stdenv.mkDerivation {
${preBuild} ${preBuild}
''; '';
installPhase = '' installPhase = ''
addDeps()
{
if [ -f $1/nix-support/dotnet-assemblies ]
then
for i in $(cat $1/nix-support/dotnet-assemblies)
do
windowsPath=$(cygpath --windows $i)
assemblySearchPaths="$assemblySearchPaths;$windowsPath"
addDeps $i
done
fi
}
for i in ${toString assemblyInputs} for i in ${toString assemblyInputs}
do do
windowsPath=$(cygpath --windows $i) windowsPath=$(cygpath --windows $i)
@ -45,6 +59,8 @@ stdenv.mkDerivation {
else else
assemblySearchPaths="$assemblySearchPaths;$windowsPath" assemblySearchPaths="$assemblySearchPaths;$windowsPath"
fi fi
addDeps $i
done done
echo "Assembly search paths are: $assemblySearchPaths" echo "Assembly search paths are: $assemblySearchPaths"

View File

@ -28,12 +28,27 @@ dotnetenv.buildSolution {
slnFile = "Wrapper.sln"; slnFile = "Wrapper.sln";
assemblyInputs = [ application ]; assemblyInputs = [ application ];
preBuild = '' preBuild = ''
addRuntimeDeps()
{
if [ -f $1/nix-support/dotnet-assemblies ]
then
for i in $(cat $1/nix-support/dotnet-assemblies)
do
windowsPath=$(cygpath --windows $i | sed 's|\\|\\\\|g')
assemblySearchArray="$assemblySearchArray @\"$windowsPath\""
addRuntimeDeps $i
done
fi
}
export exePath=$(cygpath --windows $(find ${application} -name \*.exe) | sed 's|\\|\\\\|g') export exePath=$(cygpath --windows $(find ${application} -name \*.exe) | sed 's|\\|\\\\|g')
# Generate assemblySearchPaths string array contents # Generate assemblySearchPaths string array contents
for path in ${toString assemblyInputs} for path in ${toString assemblyInputs}
do do
assemblySearchArray="$assemblySearchArray @\"$(cygpath --windows $path | sed 's|\\|\\\\|g')\", " assemblySearchArray="$assemblySearchArray @\"$(cygpath --windows $path | sed 's|\\|\\\\|g')\", "
addRuntimeDeps $path
done done
sed -e "s|@ROOTNAMESPACE@|${namespace}Wrapper|" \ sed -e "s|@ROOTNAMESPACE@|${namespace}Wrapper|" \