summary refs log tree commit diff
path: root/pkgs/build-support/dotnetenv
diff options
context:
space:
mode:
authorSander van der Burg <s.vanderburg@tudelft.nl>2010-06-15 11:16:35 +0000
committerSander van der Burg <s.vanderburg@tudelft.nl>2010-06-15 11:16:35 +0000
commit970ce3a878b288b311e7bb16728c88fed42dbd1b (patch)
treee1bad53823e9085e2d9d9ec2067187868a361dcc /pkgs/build-support/dotnetenv
parentf1a2bd1580ada52b51326aec4d4194fd497eb1b3 (diff)
downloadnixpkgs-970ce3a878b288b311e7bb16728c88fed42dbd1b.tar
nixpkgs-970ce3a878b288b311e7bb16728c88fed42dbd1b.tar.gz
nixpkgs-970ce3a878b288b311e7bb16728c88fed42dbd1b.tar.bz2
nixpkgs-970ce3a878b288b311e7bb16728c88fed42dbd1b.tar.lz
nixpkgs-970ce3a878b288b311e7bb16728c88fed42dbd1b.tar.xz
nixpkgs-970ce3a878b288b311e7bb16728c88fed42dbd1b.tar.zst
nixpkgs-970ce3a878b288b311e7bb16728c88fed42dbd1b.zip
Commited my experimental Visual C# build function. Currently, it should only be used by brave people
svn path=/nixpkgs/trunk/; revision=22272
Diffstat (limited to 'pkgs/build-support/dotnetenv')
-rw-r--r--pkgs/build-support/dotnetenv/buildSolution.nix61
-rw-r--r--pkgs/build-support/dotnetenv/default.nix10
2 files changed, 71 insertions, 0 deletions
diff --git a/pkgs/build-support/dotnetenv/buildSolution.nix b/pkgs/build-support/dotnetenv/buildSolution.nix
new file mode 100644
index 00000000000..495f2f116ea
--- /dev/null
+++ b/pkgs/build-support/dotnetenv/buildSolution.nix
@@ -0,0 +1,61 @@
+{stdenv, dotnetfx}:
+{ name
+, src
+, baseDir ? "."
+, slnFile
+, targets ? "ReBuild"
+, verbosity ? "detailed"
+, options ? "/p:Configuration=Debug;Platform=Win32"
+, assemblyInputs ? []
+, runtimeAssemblies ? []
+, preBuild ? ""
+}:
+
+stdenv.mkDerivation {
+  inherit name src preBuild;  
+  
+  buildInputs = [ dotnetfx ];  
+  preConfigure = ''
+    cd ${baseDir}
+  '';
+  
+  installPhase = ''        
+    for i in ${toString assemblyInputs}
+    do
+	windowsPath=$(cygpath --windows $i) 
+	echo "Using assembly path: $windowsPath"
+	
+	if [ "$assemblySearchPaths" = "" ]
+	then
+	    assemblySearchPaths="$windowsPath"
+	else
+	    assemblySearchPaths="$assemblySearchPaths;$windowsPath"
+	fi
+    done
+      
+    echo "Assembly search paths are: $assemblySearchPaths"
+    
+    if [ "$assemblySearchPaths" != "" ]
+    then
+	echo "Using assembly search paths args: $assemblySearchPathsArg"
+	export AssemblySearchPaths=$assemblySearchPaths
+    fi
+    
+    ensureDir $out
+    MSBuild.exe ${slnFile} /nologo /t:${targets} /p:IntermediateOutputPath=$(cygpath --windows $out)\\ /p:OutputPath=$(cygpath --windows $out)\\ /verbosity:${verbosity} ${options}
+    
+    # Create references to runtime dependencies
+    # !!! Should be more efficient (e.g. symlinking)
+    
+    for i in ${toString runtimeAssemblies}
+    do
+        cd $i
+	
+        for j in $(find . -type f)
+	do
+	    mkdir -p $out/$(dirname $j)
+	    cp $j $out/$(dirname $j)
+	done
+    done
+  '';
+}
diff --git a/pkgs/build-support/dotnetenv/default.nix b/pkgs/build-support/dotnetenv/default.nix
new file mode 100644
index 00000000000..7483672aca7
--- /dev/null
+++ b/pkgs/build-support/dotnetenv/default.nix
@@ -0,0 +1,10 @@
+{stdenv, dotnetfx}:
+
+{
+  buildSolution = import ./buildSolution.nix {
+    inherit stdenv;
+    dotnetfx = dotnetfx.pkg;
+  };
+  
+  inherit (dotnetfx) assembly20Path wcfPath referenceAssembly30Path referenceAssembly35Path;
+}