mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-12-11 08:55:23 +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.
46 lines
1.3 KiB
Nix
46 lines
1.3 KiB
Nix
# The build system where packages will be _built_.
|
|
{ system ? builtins.currentSystem
|
|
# The host system where packages will _run_.
|
|
, crossSystem ? null
|
|
# Additional sources.json overrides.
|
|
, sources ? { }
|
|
# Additional nixpkgs.config overrides.
|
|
, config ? { }
|
|
# Additional nixpkgs.overlays.
|
|
, overlays ? [ ]
|
|
# Overlays to apply to the last package set in cross compilation.
|
|
, crossOverlays ? [ ] }:
|
|
|
|
let
|
|
|
|
finalSources = import ./sources.nix { inherit pkgs; } // sources;
|
|
|
|
haskellNix = import finalSources."haskell.nix" {
|
|
sourcesOverride = {
|
|
hackage = finalSources."hackage.nix";
|
|
stackage = finalSources."stackage.nix";
|
|
};
|
|
};
|
|
|
|
finalOverlays = [
|
|
# Add top-level .sources attribute for other overlays to access niv sources.
|
|
(_final: _prev: { sources = finalSources; })
|
|
|
|
# General unguarded (native) overrides for nixpkgs.
|
|
(import ./overlays/native.nix)
|
|
|
|
# Specific overrides guarded by the host platform.
|
|
(import ./overlays/musl.nix)
|
|
] ++ haskellNix.overlays ++ overlays;
|
|
|
|
pkgs = import finalSources.nixpkgs {
|
|
inherit system crossSystem crossOverlays;
|
|
|
|
config = haskellNix.config // config;
|
|
overlays = finalOverlays;
|
|
};
|
|
|
|
in pkgs // {
|
|
pkgsStatic = pkgs.pkgsStatic.extend (import ./overlays/static.nix);
|
|
}
|