urbit/nix/release.nix
benjamin-tlon ade1e59ce1
Get cross-compilation ready for release. (#1263)
* Add cross-compilation for `lmdb`.
* Got built caching working in CI with `cachix`.
* Cache cross compilation dependencies and toolchains.
* Do release builds in CI.
* Upload release builds to `bootstrap.urbit.org` on successful build.
* Lots of optimization work for CI.
* Boot from a solid pill in CI and load arvo with `-A`.
* Increase `vere` HTTP timeout to 15m.
2019-05-02 13:13:48 -07:00

41 lines
918 B
Nix

let
nixpkgs = import ./nixpkgs.nix;
nixcrpkgs = import ./nixcrpkgs.nix;
crossdeps = import ./crossdeps.nix;
release =
env_name: env: {
inherit env env_name;
deps = crossdeps env;
};
linux64 = release "linux64" nixcrpkgs.linux64;
darwin = release "darwin" nixcrpkgs.mac;
ent = env:
import ./pkgs/ent/cross.nix env;
urbit = env:
import ./pkgs/urbit/release.nix env
{ ent = ent env; debug = false; name = "urbit"; };
builds-for-platform = plat:
plat.deps // {
inherit (plat.env) curl libgmp libsigsegv ncurses openssl zlib lmdb;
inherit (plat.env) cmake_toolchain;
ent = ent plat;
urbit = urbit plat;
};
darwin_extra = {
inherit (darwin.env) ranlib ld sdk ar toolchain tapi strip;
};
in
{
linux64 = builds-for-platform linux64;
darwin = darwin_extra // builds-for-platform darwin;
}