From 9be118223b641f85233805deabbe1fd52e927bad Mon Sep 17 00:00:00 2001 From: John Ericson Date: Mon, 14 May 2018 20:31:27 -0400 Subject: misc mingw: Get rid of crossConfig and clean up Style of dual implementation and headers derivations is take from bb7067f882bf3c53ea68780a8ec0a7117f563253. --- pkgs/os-specific/windows/mingwrt/common.nix | 12 ++++++++++ pkgs/os-specific/windows/mingwrt/default.nix | 32 ++++---------------------- pkgs/os-specific/windows/mingwrt/headers.nix | 17 ++++++++++++++ pkgs/os-specific/windows/w32api/common.nix | 14 ++++++++++++ pkgs/os-specific/windows/w32api/default.nix | 34 ++++------------------------ pkgs/os-specific/windows/w32api/headers.nix | 17 ++++++++++++++ 6 files changed, 69 insertions(+), 57 deletions(-) create mode 100644 pkgs/os-specific/windows/mingwrt/common.nix create mode 100644 pkgs/os-specific/windows/mingwrt/headers.nix create mode 100644 pkgs/os-specific/windows/w32api/common.nix create mode 100644 pkgs/os-specific/windows/w32api/headers.nix (limited to 'pkgs/os-specific') diff --git a/pkgs/os-specific/windows/mingwrt/common.nix b/pkgs/os-specific/windows/mingwrt/common.nix new file mode 100644 index 000000000000..7dc2ae56aa84 --- /dev/null +++ b/pkgs/os-specific/windows/mingwrt/common.nix @@ -0,0 +1,12 @@ +{ lib, fetchurl }: + +rec { + name = "mingwrt-3.20"; + + src = fetchurl { + url = "mirror://sourceforge/mingw/MinGW/Base/mingw-rt/${name}-mingw32-src.tar.gz"; + sha256 = "02pydg1m8y35nxb4k34nlb5c341y2waq76z42mgdzlcf661r91pi"; + }; + + meta.platforms = [ lib.systems.inspect.isMinGW ]; +} diff --git a/pkgs/os-specific/windows/mingwrt/default.nix b/pkgs/os-specific/windows/mingwrt/default.nix index 98461d690d92..3429f7564ade 100644 --- a/pkgs/os-specific/windows/mingwrt/default.nix +++ b/pkgs/os-specific/windows/mingwrt/default.nix @@ -1,29 +1,7 @@ -{stdenv, fetchurl, binutils ? null, gccCross ? null, onlyHeaders ? false}: - -let - name = "mingwrt-3.20"; -in -stdenv.mkDerivation (rec { - inherit name; - - src = fetchurl { - url = "mirror://sourceforge/mingw/MinGW/Base/mingw-rt/${name}-mingw32-src.tar.gz"; - sha256 = "02pydg1m8y35nxb4k34nlb5c341y2waq76z42mgdzlcf661r91pi"; - }; - -} // -(if onlyHeaders then { - name = name + "-headers"; - phases = [ "unpackPhase" "installPhase" ]; - installPhase = '' - mkdir -p $out - cp -R include $out - ''; -} else { - buildInputs = [ gccCross binutils ]; - - crossConfig = gccCross.crossConfig; +{ stdenv, callPackage }: +stdenv.mkDerivation { + inherit (callPackage ./common.nix {}) name src meta; dontStrip = true; -}) -) + hardeningDisable = [ "stackprotector" "fortify" ]; +} diff --git a/pkgs/os-specific/windows/mingwrt/headers.nix b/pkgs/os-specific/windows/mingwrt/headers.nix new file mode 100644 index 000000000000..51180af0fc73 --- /dev/null +++ b/pkgs/os-specific/windows/mingwrt/headers.nix @@ -0,0 +1,17 @@ +{ stdenvNoCC, callPackage }: + +let + inherit (callPackage ./common.nix {}) name src meta; + +in stdenvNoCC.mkDerivation { + name = name + "-headers"; + + inherit src meta; + + phases = [ "unpackPhase" "installPhase" ]; + + installPhase = '' + mkdir -p $out + cp -R include $out + ''; +} diff --git a/pkgs/os-specific/windows/w32api/common.nix b/pkgs/os-specific/windows/w32api/common.nix new file mode 100644 index 000000000000..273ae2c8df4b --- /dev/null +++ b/pkgs/os-specific/windows/w32api/common.nix @@ -0,0 +1,14 @@ +{ fetchurl, xz }: + +rec { + name = "w32api-3.17-2"; + + src = fetchurl { + url = "mirror://sourceforge/mingw/MinGW/Base/w32api/w32api-3.17/${name}-mingw32-src.tar.lzma"; + sha256 = "09rhnl6zikmdyb960im55jck0rdy5z9nlg3akx68ixn7khf3j8wb"; + }; + + nativeBuildInputs = [ xz ]; + + meta.platforms = [ lib.systems.inspect.isMinGW ]; +} diff --git a/pkgs/os-specific/windows/w32api/default.nix b/pkgs/os-specific/windows/w32api/default.nix index 3443fff9668d..51b88201998c 100644 --- a/pkgs/os-specific/windows/w32api/default.nix +++ b/pkgs/os-specific/windows/w32api/default.nix @@ -1,32 +1,6 @@ -{ stdenv, fetchurl, xz, binutils ? null -, gccCross ? null, onlyHeaders ? false }: - -let - name = "w32api-3.17-2"; -in -stdenv.mkDerivation ({ - inherit name; - - src = fetchurl { - url = "mirror://sourceforge/mingw/MinGW/Base/w32api/w32api-3.17/${name}-mingw32-src.tar.lzma"; - sha256 = "09rhnl6zikmdyb960im55jck0rdy5z9nlg3akx68ixn7khf3j8wb"; - }; - - nativeBuildInputs = [ xz ]; - -} // -(if onlyHeaders then { - name = name + "-headers"; - phases = [ "unpackPhase" "installPhase" ]; - installPhase = '' - mkdir -p $out - cp -R include $out - ''; -} else { - buildInputs = [ gccCross binutils ]; - - crossConfig = gccCross.crossConfig; +{ stdenv, callPackage }: +stdenv.mkDerivation { + inherit (callPackage ./common.nix {}) name src nativeBuildInputs meta; dontStrip = true; -}) -) +} diff --git a/pkgs/os-specific/windows/w32api/headers.nix b/pkgs/os-specific/windows/w32api/headers.nix new file mode 100644 index 000000000000..3083118bb366 --- /dev/null +++ b/pkgs/os-specific/windows/w32api/headers.nix @@ -0,0 +1,17 @@ +{ stdenvNoCC, callPackage }: + +let + inherit (callPackage ./common.nix {}) name src meta; + +in stdenvNoCC.mkDerivation { + name = name + "-headers"; + + inherit src nativeBuildInputs meta; + + phases = [ "unpackPhase" "installPhase" ]; + + installPhase = '' + mkdir -p $out + cp -R include $out + ''; +} -- cgit 1.4.1