Split monolithic raw crates into sys crates
Creating a crate for bwd-gc highlights the fact that it would be nice to fix 2! The file blocklist is a lost less unmaintainable then the more fine-grained one we had before. Fix #9
This commit is contained in:
parent
485070ffa9
commit
dbb00333b1
51 changed files with 571 additions and 104 deletions
52
nci.nix
52
nci.nix
|
|
@ -2,8 +2,24 @@
|
|||
perSystem =
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.nix-bindings-rust;
|
||||
nixLibs =
|
||||
if cfg.nixPackage ? libs then
|
||||
cfg.nixPackage.libs
|
||||
else
|
||||
# Fallback for older Nix versions without split libs
|
||||
{
|
||||
nix-util-c = cfg.nixPackage;
|
||||
nix-store-c = cfg.nixPackage;
|
||||
nix-expr-c = cfg.nixPackage;
|
||||
nix-fetchers-c = cfg.nixPackage;
|
||||
nix-flake-c = cfg.nixPackage;
|
||||
};
|
||||
in
|
||||
{
|
||||
# https://flake.parts/options/nix-cargo-integration
|
||||
nci.projects.nix-bindings = {
|
||||
|
|
@ -42,12 +58,46 @@
|
|||
echo "experimental-features = ca-derivations flakes" > "$NIX_CONF_DIR/nix.conf"
|
||||
|
||||
# Init ahead of time, because concurrent initialization is flaky
|
||||
${config.nix-bindings-rust.nixPackage}/bin/nix-store --init
|
||||
${cfg.nixPackage}/bin/nix-store --init
|
||||
|
||||
echo "Store initialized."
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Per-crate configuration: only provide the specific Nix libs each crate needs
|
||||
# FIXME should use propagatedBuildInputs
|
||||
nci.crates.nix-bindings-bdwgc-sys.drvConfig.mkDerivation.buildInputs = [
|
||||
pkgs.boehmgc
|
||||
];
|
||||
nci.crates.nix-bindings-util-sys.drvConfig.mkDerivation.buildInputs = [
|
||||
nixLibs.nix-util-c
|
||||
];
|
||||
nci.crates.nix-bindings-util.drvConfig.mkDerivation.buildInputs =
|
||||
config.nci.crates.nix-bindings-util-sys.drvConfig.mkDerivation.buildInputs;
|
||||
nci.crates.nix-bindings-store-sys.drvConfig.mkDerivation.buildInputs =
|
||||
config.nci.crates.nix-bindings-util-sys.drvConfig.mkDerivation.buildInputs
|
||||
++ [ nixLibs.nix-store-c ];
|
||||
nci.crates.nix-bindings-store.drvConfig.mkDerivation.buildInputs =
|
||||
config.nci.crates.nix-bindings-store-sys.drvConfig.mkDerivation.buildInputs;
|
||||
nci.crates.nix-bindings-expr-sys.drvConfig.mkDerivation.buildInputs =
|
||||
config.nci.crates.nix-bindings-store-sys.drvConfig.mkDerivation.buildInputs
|
||||
++ [
|
||||
nixLibs.nix-expr-c
|
||||
pkgs.boehmgc
|
||||
];
|
||||
nci.crates.nix-bindings-expr.drvConfig.mkDerivation.buildInputs =
|
||||
config.nci.crates.nix-bindings-expr-sys.drvConfig.mkDerivation.buildInputs;
|
||||
nci.crates.nix-bindings-fetchers-sys.drvConfig.mkDerivation.buildInputs =
|
||||
config.nci.crates.nix-bindings-expr-sys.drvConfig.mkDerivation.buildInputs
|
||||
++ [ nixLibs.nix-fetchers-c ];
|
||||
nci.crates.nix-bindings-fetchers.drvConfig.mkDerivation.buildInputs =
|
||||
config.nci.crates.nix-bindings-fetchers-sys.drvConfig.mkDerivation.buildInputs;
|
||||
nci.crates.nix-bindings-flake-sys.drvConfig.mkDerivation.buildInputs =
|
||||
config.nci.crates.nix-bindings-fetchers-sys.drvConfig.mkDerivation.buildInputs
|
||||
++ [ nixLibs.nix-flake-c ];
|
||||
nci.crates.nix-bindings-flake.drvConfig.mkDerivation.buildInputs =
|
||||
config.nci.crates.nix-bindings-flake-sys.drvConfig.mkDerivation.buildInputs;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue