diff options
author | Alyssa Ross <hi@alyssa.is> | 2023-11-10 15:18:19 +0100 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-11-10 15:18:19 +0100 |
commit | afabc4a15d5ba6631bd4d865b8be37fc67d52809 (patch) | |
tree | 2342d9e8bd8b4cfbfee2b9a98c088df9f1c809ca /pkgs/development/tools/haskell/hadrian/hadrian.nix | |
parent | 9a0c85ffc5aedc46b4d81f3b9fc22d7f488e3ff9 (diff) | |
parent | 714e527a726c9613fca8e13586a1b19198d68d9b (diff) | |
download | nixlib-afabc4a15d5ba6631bd4d865b8be37fc67d52809.tar nixlib-afabc4a15d5ba6631bd4d865b8be37fc67d52809.tar.gz nixlib-afabc4a15d5ba6631bd4d865b8be37fc67d52809.tar.bz2 nixlib-afabc4a15d5ba6631bd4d865b8be37fc67d52809.tar.lz nixlib-afabc4a15d5ba6631bd4d865b8be37fc67d52809.tar.xz nixlib-afabc4a15d5ba6631bd4d865b8be37fc67d52809.tar.zst nixlib-afabc4a15d5ba6631bd4d865b8be37fc67d52809.zip |
Merge remote-tracking branch 'origin/master' into HEAD
Conflicts: pkgs/development/libraries/SDL2/default.nix
Diffstat (limited to 'pkgs/development/tools/haskell/hadrian/hadrian.nix')
-rw-r--r-- | pkgs/development/tools/haskell/hadrian/hadrian.nix | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/pkgs/development/tools/haskell/hadrian/hadrian.nix b/pkgs/development/tools/haskell/hadrian/hadrian.nix new file mode 100644 index 000000000000..1be21d6f4519 --- /dev/null +++ b/pkgs/development/tools/haskell/hadrian/hadrian.nix @@ -0,0 +1,55 @@ +# See also ./make-hadria.nix +{ mkDerivation, base, bytestring, Cabal, containers, directory +, extra, filepath, lib, mtl, parsec, shake, text, transformers +, unordered-containers, cryptohash-sha256, base16-bytestring +, writeText + # Dependencies that are not on Hackage and only used in certain Hadrian versions +, ghc-platform ? null +, ghc-toolchain ? null + # GHC source tree to build hadrian from +, ghcSrc +, ghcVersion + # Customization +, userSettings ? null +, enableHyperlinkedSource +}: + +mkDerivation { + pname = "hadrian"; + version = ghcVersion; + src = ghcSrc; + postUnpack = '' + sourceRoot="$sourceRoot/hadrian" + ''; + patches = lib.optionals (!enableHyperlinkedSource) [ + ./disable-hyperlinked-source.patch + ]; + # Overwrite UserSettings.hs with a provided custom one + postPatch = lib.optionalString (userSettings != null) '' + install -m644 "${writeText "UserSettings.hs" userSettings}" src/UserSettings.hs + ''; + configureFlags = [ + # avoid QuickCheck dep which needs shared libs / TH + "-f-selftest" + # Building hadrian with -O1 takes quite some time with little benefit. + # Additionally we need to recompile it on every change of UserSettings.hs. + # See https://gitlab.haskell.org/ghc/ghc/-/merge_requests/1190 + "-O0" + ]; + isLibrary = false; + isExecutable = true; + executableHaskellDepends = [ + base bytestring Cabal containers directory extra filepath mtl + parsec shake text transformers unordered-containers + ] ++ lib.optionals (lib.versionAtLeast ghcVersion "9.7") [ + cryptohash-sha256 base16-bytestring + ] ++ lib.optionals (lib.versionAtLeast ghcVersion "9.9") [ + ghc-platform ghc-toolchain + ]; + passthru = { + # Expose »private« dependencies if any + inherit ghc-platform ghc-toolchain; + }; + description = "GHC build system"; + license = lib.licenses.bsd3; +} |