about summary refs log tree commit diff
path: root/pkgs/os-specific/windows
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/windows')
-rw-r--r--pkgs/os-specific/windows/mingw-w64/default.nix26
-rw-r--r--pkgs/os-specific/windows/mingw-w64/headers.nix10
2 files changed, 32 insertions, 4 deletions
diff --git a/pkgs/os-specific/windows/mingw-w64/default.nix b/pkgs/os-specific/windows/mingw-w64/default.nix
index 38293e65f70f5..02cfd7b04a77a 100644
--- a/pkgs/os-specific/windows/mingw-w64/default.nix
+++ b/pkgs/os-specific/windows/mingw-w64/default.nix
@@ -1,14 +1,32 @@
 { lib, stdenv, windows, fetchurl }:
 
 let
-  version = "9.0.0";
+  version = "10.0.0";
+
+  knownArches = [ "32" "64" "arm32" "arm64" ];
+  enabledArch =
+    if stdenv.targetPlatform.isAarch32
+    then "arm32"
+    else if stdenv.targetPlatform.isAarch64
+    then "arm64"
+    else if stdenv.targetPlatform.isx86_32
+    then "32"
+    else if stdenv.targetPlatform.isx86_64
+    then "64"
+    else null;
+  archFlags =
+    if enabledArch == null
+    then [] # maybe autoconf will save us
+    else map (arch: lib.enableFeature (arch == enabledArch) "lib${arch}") knownArches;
+
+  crt = stdenv.hostPlatform.libc;
 in stdenv.mkDerivation {
   pname = "mingw-w64";
   inherit version;
 
   src = fetchurl {
     url = "mirror://sourceforge/mingw-w64/mingw-w64-v${version}.tar.bz2";
-    sha256 = "10a15bi4lyfi0k0haj0klqambicwma6yi7vssgbz8prg815vja8r";
+    sha256 = "sha256-umtDCu1yxjo3aFMfaj/8Kw/eLFejslFFDc9ImolPCJQ=";
   };
 
   outputs = [ "out" "dev" ];
@@ -16,7 +34,8 @@ in stdenv.mkDerivation {
   configureFlags = [
     "--enable-idl"
     "--enable-secure-api"
-  ];
+    "--with-default-msvcrt=${crt}"
+  ] ++ archFlags;
 
   enableParallelBuilding = true;
 
@@ -26,5 +45,6 @@ in stdenv.mkDerivation {
 
   meta = {
     platforms = lib.platforms.windows;
+    broken = !(lib.elem crt [ "msvcrt" "ucrt" ]);
   };
 }
diff --git a/pkgs/os-specific/windows/mingw-w64/headers.nix b/pkgs/os-specific/windows/mingw-w64/headers.nix
index 1fd27a8c4573f..13ba330ef2ab2 100644
--- a/pkgs/os-specific/windows/mingw-w64/headers.nix
+++ b/pkgs/os-specific/windows/mingw-w64/headers.nix
@@ -1,6 +1,8 @@
 { stdenvNoCC, mingw_w64 }:
 
-stdenvNoCC.mkDerivation {
+let
+  crt = stdenvNoCC.hostPlatform.libc;
+in stdenvNoCC.mkDerivation {
   name = "${mingw_w64.name}-headers";
   inherit (mingw_w64) src meta;
 
@@ -8,4 +10,10 @@ stdenvNoCC.mkDerivation {
     cd mingw-w64-headers
   '';
 
+  configureFlags = [
+    "--enable-idl"
+    "--enable-secure-api"
+    "--with-default-msvcrt=${crt}"
+  ];
+
 }