Add function to build a ghc standalone archive (OSX/iOS only)

+28 -1
+12 -1
pkgs/development/compilers/ghc/head.nix
··· 85 85 } // stdenv.lib.optionalAttrs (cross != null) { 86 86 name = "${cross.config}-ghc-${version}"; 87 87 88 + patches = [ ./ios-linker.patch ]; 89 + 88 90 preConfigure = commonPreConfigure + '' 89 - sed 's|#BuildFlavour = quick-cross|BuildFlavour = perf-cross|' mk/build.mk.sample > mk/build.mk 91 + sed 's|#BuildFlavour = quick-cross|BuildFlavour = quick-cross|' mk/build.mk.sample > mk/build.mk 92 + echo "GhcRtsCcOpts = -glldb -Og" >> mk/build.mk 93 + ''; 94 + 95 + postUnpack = '' 96 + mkdir -p $out/nix-support 97 + mv $sourceRoot $out/nix-support/source 98 + sourceRoot=$out/nix-support/source 90 99 ''; 91 100 92 101 configureFlags = [ ··· 102 111 buildInputs = commonBuildInputs ++ [ stdenv.ccCross stdenv.binutilsCross ]; 103 112 104 113 dontSetConfigureCross = true; 114 + 115 + dontStrip = true; 105 116 106 117 passthru = { 107 118 inherit bootPkgs cross;
+14
pkgs/os-specific/darwin/ghc-standalone-archive/default.nix
··· 1 + { runCommand, cctools }: 2 + { haskellPackages, src, deps ? p : [], name }: let 3 + inherit (haskellPackages) ghc ghcWithPackages; 4 + with-env = ghcWithPackages deps; 5 + crossPrefix = if (ghc.cross or null) != null then "${ghc.cross.config}-" else ""; 6 + ghcName = "${crossPrefix}ghc"; 7 + in runCommand name { buildInputs = [ with-env cctools ]; } '' 8 + mkdir -p $out/lib 9 + mkdir -p $out/include 10 + ${ghcName} ${src} -staticlib -outputdir . -o $out/lib/${name}.a -stubdir $out/include 11 + for file in ${ghc}/lib/${ghcName}-${ghc.version}/include/*; do 12 + ln -sv $file $out/include 13 + done 14 + ''
+2
pkgs/top-level/all-packages.nix
··· 18042 18042 simplenote = callPackage ../applications/misc/simplenote { }; 18043 18043 18044 18044 hy = callPackage ../development/interpreters/hy {}; 18045 + 18046 + ghc-standalone-archive = callPackage ../os-specific/darwin/ghc-standalone-archive { inherit (darwin) cctools; }; 18045 18047 }