Author: sandervanderburg
Date: 2010-06-15 11:16:35 +0000 (Tue, 15 Jun 2010)
New Revision: 22272

You can view the changes in this commit at:
   https://svn.nixos.org/viewvc/nix?rev=22272&view=rev

Added:
   nixpkgs/trunk/pkgs/build-support/dotnetenv/
   nixpkgs/trunk/pkgs/build-support/dotnetenv/buildSolution.nix
   nixpkgs/trunk/pkgs/build-support/dotnetenv/default.nix
   nixpkgs/trunk/pkgs/development/libraries/dotnetfx35/
   nixpkgs/trunk/pkgs/development/libraries/dotnetfx35/default.nix
Modified:
   nixpkgs/trunk/pkgs/top-level/all-packages.nix

Log:
Commited my experimental Visual C# build function. Currently, it should only be 
used by brave people

Changes:

Added: nixpkgs/trunk/pkgs/build-support/dotnetenv/buildSolution.nix
===================================================================
--- nixpkgs/trunk/pkgs/build-support/dotnetenv/buildSolution.nix                
                (rev 0)
+++ nixpkgs/trunk/pkgs/build-support/dotnetenv/buildSolution.nix        
2010-06-15 11:16:35 UTC (rev 22272)
@@ -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
+  '';
+}

Added: nixpkgs/trunk/pkgs/build-support/dotnetenv/default.nix
===================================================================
--- nixpkgs/trunk/pkgs/build-support/dotnetenv/default.nix                      
        (rev 0)
+++ nixpkgs/trunk/pkgs/build-support/dotnetenv/default.nix      2010-06-15 
11:16:35 UTC (rev 22272)
@@ -0,0 +1,10 @@
+{stdenv, dotnetfx}:
+
+{
+  buildSolution = import ./buildSolution.nix {
+    inherit stdenv;
+    dotnetfx = dotnetfx.pkg;
+  };
+  
+  inherit (dotnetfx) assembly20Path wcfPath referenceAssembly30Path 
referenceAssembly35Path;
+}

Added: nixpkgs/trunk/pkgs/development/libraries/dotnetfx35/default.nix
===================================================================
--- nixpkgs/trunk/pkgs/development/libraries/dotnetfx35/default.nix             
                (rev 0)
+++ nixpkgs/trunk/pkgs/development/libraries/dotnetfx35/default.nix     
2010-06-15 11:16:35 UTC (rev 22272)
@@ -0,0 +1,23 @@
+{stdenv}:
+
+let
+  windir = "/cygdrive/c/WINDOWS";
+in
+{
+  pkg = stdenv.mkDerivation {
+    name = "dotnetfx-3.5";
+    src = "${windir}/Microsoft.NET/Framework/v3.5";
+    buildCommand = ''
+      ensureDir $out/bin
+      ln -s $src/MSBuild.exe $out/bin
+    '';
+  };
+  
+  assembly20Path = "/cygdrive/c/WINDOWS/Microsoft.NET/Framework/v2.0.50727";
+  
+  wcfPath = "/cygdrive/c/WINDOWS/Microsoft.NET/Framework/v3.0/WINDOW~1";
+  
+  referenceAssembly30Path = 
"/cygdrive/c/PROGRA~1/REFERE~1/Microsoft/Framework/v3.0";
+  
+  referenceAssembly35Path = 
"/cygdrive/c/PROGRA~1/REFERE~1/Microsoft/Framework/v3.5";
+}

Modified: nixpkgs/trunk/pkgs/top-level/all-packages.nix
===================================================================
--- nixpkgs/trunk/pkgs/top-level/all-packages.nix       2010-06-15 09:14:16 UTC 
(rev 22271)
+++ nixpkgs/trunk/pkgs/top-level/all-packages.nix       2010-06-15 11:16:35 UTC 
(rev 22272)
@@ -230,6 +230,11 @@
     inherit fetchurl stdenv;
   };
 
+  dotnetenv = import ../build-support/dotnetenv {
+    inherit stdenv;
+    dotnetfx = dotnetfx35;
+  };
+
   fetchbzr = import ../build-support/fetchbzr {
     inherit stdenv bazaar;
   };
@@ -653,6 +658,10 @@
     inherit builderDefs;
   };
 
+  dotnetfx35 = import ../development/libraries/dotnetfx35 {
+    inherit stdenv;
+  };
+
   dropbear = makeOverridable (import ../tools/networking/dropbear) {
     inherit fetchurl stdenv;
     enableStatic = true;

_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits

Reply via email to