diff options
Diffstat (limited to 'pkgs/os-specific/windows')
-rw-r--r-- | pkgs/os-specific/windows/mingw-w64/default.nix | 26 | ||||
-rw-r--r-- | pkgs/os-specific/windows/mingw-w64/headers.nix | 10 |
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}" + ]; + } |