mirror of
https://github.com/urbit/shrub.git
synced 2024-12-24 20:47:27 +03:00
983261a3d8
As well as some variable naming consistency to appease the nixpkgs gremlins and keep the git history lords on their toes.
88 lines
2.4 KiB
Nix
88 lines
2.4 KiB
Nix
{ lib, stdenv, darwin, haskell-nix, gmp, zlib, libffi, brass
|
|
, enableStatic ? stdenv.hostPlatform.isStatic }:
|
|
|
|
haskell-nix.stackProject {
|
|
compiler-nix-name = "ghc884";
|
|
index-state = "2020-09-24T00:00:00Z";
|
|
|
|
# This is incredibly difficult to get right, almost everything goes wrong.
|
|
# See: https://github.com/input-output-hk/haskell.nix/issues/496
|
|
src = haskell-nix.haskellLib.cleanSourceWith {
|
|
# Otherwise this depends on the name in the parent directory, which
|
|
# reduces caching, and is particularly bad on Hercules.
|
|
# See: https://github.com/hercules-ci/support/issues/40
|
|
name = "urbit-hs";
|
|
src = ../../../pkg/hs;
|
|
};
|
|
|
|
modules = [{
|
|
# This corresponds to the set of packages (boot libs) that ship with GHC.
|
|
# We declare them yere to ensure any dependency gets them from GHC itself
|
|
# rather than trying to re-install them into the package database.
|
|
nonReinstallablePkgs = [
|
|
"Cabal"
|
|
"Win32"
|
|
"array"
|
|
"base"
|
|
"binary"
|
|
"bytestring"
|
|
"containers"
|
|
"deepseq"
|
|
"directory"
|
|
"filepath"
|
|
"ghc"
|
|
"ghc-boot"
|
|
"ghc-boot-th"
|
|
"ghc-compact"
|
|
"ghc-heap"
|
|
"ghc-prim"
|
|
"ghci"
|
|
"ghcjs-prim"
|
|
"ghcjs-th"
|
|
"haskeline"
|
|
"hpc"
|
|
"integer-gmp"
|
|
"integer-simple"
|
|
"mtl"
|
|
"parsec"
|
|
"pretty"
|
|
"process"
|
|
"rts"
|
|
"stm"
|
|
"template-haskell"
|
|
"terminfo"
|
|
"text"
|
|
"time"
|
|
"transformers"
|
|
"unix"
|
|
"xhtml"
|
|
];
|
|
|
|
# Override various project-local flags and build configuration.
|
|
packages = {
|
|
urbit-king.components.exes.urbit-king = {
|
|
enableStatic = enableStatic;
|
|
enableShared = !enableStatic;
|
|
|
|
configureFlags = lib.optionals enableStatic [
|
|
"--ghc-option=-optl=-L${gmp}/lib"
|
|
"--ghc-option=-optl=-L${libffi}/lib"
|
|
"--ghc-option=-optl=-L${zlib}/lib"
|
|
] ++ lib.optionals (enableStatic && stdenv.isDarwin)
|
|
[ "--ghc-option=-optl=-L${darwin.libiconv}/lib" ];
|
|
|
|
postInstall = lib.optionalString (enableStatic && stdenv.isDarwin) ''
|
|
find "$out/bin" -type f -exec \
|
|
install_name_tool -change \
|
|
${stdenv.cc.libc}/lib/libSystem.B.dylib \
|
|
/usr/lib/libSystem.B.dylib {} \;
|
|
'';
|
|
};
|
|
|
|
urbit-king.components.tests.urbit-king-tests.testFlags =
|
|
[ "--brass-pill=${brass.lfs}" ];
|
|
};
|
|
}];
|
|
}
|
|
|