about summary refs log tree commit diff
path: root/pkgs/development/compilers/dotnet/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers/dotnet/default.nix')
-rw-r--r--pkgs/development/compilers/dotnet/default.nix76
1 files changed, 45 insertions, 31 deletions
diff --git a/pkgs/development/compilers/dotnet/default.nix b/pkgs/development/compilers/dotnet/default.nix
index 0c6999471c48..88aaa28c8d2d 100644
--- a/pkgs/development/compilers/dotnet/default.nix
+++ b/pkgs/development/compilers/dotnet/default.nix
@@ -1,35 +1,42 @@
 /*
-How to combine packages for use in development:
-dotnetCombined = with dotnetCorePackages; combinePackages [ sdk_6_0 aspnetcore_7_0 ];
+  How to combine packages for use in development:
+  dotnetCombined = with dotnetCorePackages; combinePackages [ sdk_6_0 aspnetcore_7_0 ];
 
-Hashes and urls are retrieved from:
-https://dotnet.microsoft.com/download/dotnet
+  Hashes and urls are retrieved from:
+  https://dotnet.microsoft.com/download/dotnet
 */
-{ lib
-, config
-, recurseIntoAttrs
-, generateSplicesForMkScope
-, makeScopeWithSplicing'
+{
+  lib,
+  config,
+  recurseIntoAttrs,
+  generateSplicesForMkScope,
+  makeScopeWithSplicing',
 }:
 
 makeScopeWithSplicing' {
   otherSplices = generateSplicesForMkScope "dotnetCorePackages";
-  f = (self:
+  f = (
+    self:
     let
       callPackage = self.callPackage;
 
-      buildDotnet = attrs: callPackage (import ./build-dotnet.nix attrs) {};
-      buildAttrs = {
-        buildAspNetCore = attrs: buildDotnet (attrs // { type = "aspnetcore"; });
-        buildNetRuntime = attrs: buildDotnet (attrs // { type = "runtime"; });
-        buildNetSdk = attrs: buildDotnet (attrs // { type = "sdk"; });
-      };
+      fetchNupkg = callPackage ../../../build-support/dotnet/fetch-nupkg { };
+
+      buildDotnet = attrs: callPackage (import ./build-dotnet.nix attrs) { };
+      buildDotnetSdk =
+        version:
+        import version {
+          inherit fetchNupkg;
+          buildAspNetCore = attrs: buildDotnet (attrs // { type = "aspnetcore"; });
+          buildNetRuntime = attrs: buildDotnet (attrs // { type = "runtime"; });
+          buildNetSdk = attrs: buildDotnet (attrs // { type = "sdk"; });
+        };
 
       ## Files in versions/ are generated automatically by update.sh ##
-      dotnet_6_0 = import ./versions/6.0.nix buildAttrs;
-      dotnet_7_0 = import ./versions/7.0.nix buildAttrs;
-      dotnet_8_0 = import ./versions/8.0.nix buildAttrs;
-      dotnet_9_0 = import ./versions/9.0.nix buildAttrs;
+      dotnet_6_0 = buildDotnetSdk ./versions/6.0.nix;
+      dotnet_7_0 = buildDotnetSdk ./versions/7.0.nix;
+      dotnet_8_0 = buildDotnetSdk ./versions/8.0.nix;
+      dotnet_9_0 = buildDotnetSdk ./versions/9.0.nix;
 
       runtimeIdentifierMap = {
         "x86_64-linux" = "linux-x64";
@@ -40,16 +47,18 @@ makeScopeWithSplicing' {
         "i686-windows" = "win-x86";
       };
 
-    in {
-      inherit callPackage;
+    in
+    {
+      inherit callPackage fetchNupkg buildDotnetSdk;
 
       # Convert a "stdenv.hostPlatform.system" to a dotnet RID
-      systemToDotnetRid = system: runtimeIdentifierMap.${system} or (throw "unsupported platform ${system}");
+      systemToDotnetRid =
+        system: runtimeIdentifierMap.${system} or (throw "unsupported platform ${system}");
 
-      combinePackages = attrs: callPackage (import ./combine-packages.nix attrs) {};
+      combinePackages = attrs: callPackage (import ./combine-packages.nix attrs) { };
 
-      patchNupkgs = callPackage ./patch-nupkgs.nix {};
-      nugetPackageHook = callPackage ./nuget-package-hook.nix {};
+      patchNupkgs = callPackage ./patch-nupkgs.nix { };
+      nugetPackageHook = callPackage ./nuget-package-hook.nix { };
 
       buildDotnetModule = callPackage ../../../build-support/dotnet/build-dotnet-module { };
       buildDotnetGlobalTool = callPackage ../../../build-support/dotnet/build-dotnet-global-tool { };
@@ -57,16 +66,21 @@ makeScopeWithSplicing' {
       mkNugetSource = callPackage ../../../build-support/dotnet/make-nuget-source { };
       mkNugetDeps = callPackage ../../../build-support/dotnet/make-nuget-deps { };
       addNuGetDeps = callPackage ../../../build-support/dotnet/add-nuget-deps { };
-      fetchNupkg = callPackage ../../../build-support/dotnet/fetch-nupkg { };
 
-      dotnet_8 = recurseIntoAttrs (callPackage ./8 { bootstrapSdk = dotnet_8_0.sdk_8_0_1xx; });
-      dotnet_9 = recurseIntoAttrs (callPackage ./9 {});
-    } // lib.optionalAttrs config.allowAliases {
+      dotnet_8 = recurseIntoAttrs (callPackage ./8 { });
+      dotnet_9 = recurseIntoAttrs (callPackage ./9 { });
+    }
+    // lib.optionalAttrs config.allowAliases {
       # EOL
       sdk_2_1 = throw "Dotnet SDK 2.1 is EOL, please use 6.0 (LTS) or 7.0 (Current)";
       sdk_2_2 = throw "Dotnet SDK 2.2 is EOL, please use 6.0 (LTS) or 7.0 (Current)";
       sdk_3_0 = throw "Dotnet SDK 3.0 is EOL, please use 6.0 (LTS) or 7.0 (Current)";
       sdk_3_1 = throw "Dotnet SDK 3.1 is EOL, please use 6.0 (LTS) or 7.0 (Current)";
       sdk_5_0 = throw "Dotnet SDK 5.0 is EOL, please use 6.0 (LTS) or 7.0 (Current)";
-    } // dotnet_6_0 // dotnet_7_0 // dotnet_8_0 // dotnet_9_0);
+    }
+    // dotnet_6_0
+    // dotnet_7_0
+    // dotnet_8_0
+    // dotnet_9_0
+  );
 }