mirror of
https://github.com/urbit/shrub.git
synced 2024-12-29 23:23:52 +03:00
ce3cbf0857
This also removes nixcrpkgs and OSX cross compilation in favour of compiling on the target. x86_64/musl targets are still supported on Linux. All sources are now managed via niv (see nix/sources.json) and Haskell package sets are provided/organised via IOHK's haskell.nix. Some effort has been made to expose similar top-level attributes for development, but in some cases there have been changes. Please see the comments in the top-level default.nix and ci.nix files for usage.
43 lines
973 B
Nix
43 lines
973 B
Nix
{ lib, stdenvNoCC, fetchGitHubLFS, bootFakeShip, solid, urbit, arvo, herb, xxd
|
|
, withRopsten ? false }:
|
|
|
|
let
|
|
|
|
lfs = fetchGitHubLFS { src = ../../../bin/ivory.pill; };
|
|
|
|
in {
|
|
build = import ./builder.nix {
|
|
inherit stdenvNoCC urbit herb;
|
|
|
|
name = "ivory" + lib.optionalString withRopsten "-ropsten";
|
|
builder = ./ivory.sh;
|
|
arvo = if withRopsten then arvo.ropsten else arvo;
|
|
pier = bootFakeShip {
|
|
inherit urbit herb;
|
|
|
|
pill = solid.lfs;
|
|
ship = "zod";
|
|
};
|
|
};
|
|
|
|
# The hexdump of the `.lfs` pill contents as a C header.
|
|
header = stdenvNoCC.mkDerivation {
|
|
name = "ivory-header";
|
|
src = lfs;
|
|
nativeBuildInputs = [ xxd ];
|
|
phases = [ "installPhase" ];
|
|
|
|
installPhase = ''
|
|
file=u3_Ivory.pill
|
|
|
|
header "writing $file"
|
|
|
|
mkdir -p $out/include
|
|
cat $src > $file
|
|
xxd -i $file > $out/include/ivory.h
|
|
'';
|
|
|
|
preferLocalBuild = true;
|
|
};
|
|
} // lib.optionalAttrs (!withRopsten) { inherit lfs; }
|