filter src

This commit is contained in:
Robin Appelman 2024-09-28 22:15:37 +02:00
commit 02c5917656

View file

@ -9,6 +9,7 @@ let
inherit (lib.fileset) fileFilter toSource; inherit (lib.fileset) fileFilter toSource;
inherit (flakelight.types) fileset function; inherit (flakelight.types) fileset function;
filteredSrc = toSource { root = src; inherit (config) fileset; };
cargoToml = fromTOML (readFile (src + /Cargo.toml)); cargoToml = fromTOML (readFile (src + /Cargo.toml));
tomlPackage = cargoToml.package or cargoToml.workspace.package; tomlPackage = cargoToml.package or cargoToml.workspace.package;
hasMsrv = tomlPackage ? rust-version; hasMsrv = tomlPackage ? rust-version;
@ -63,14 +64,14 @@ warnIf (! builtins ? readFileType) "Unsupported Nix version in use."
craneLibMsrv = (inputs.crane.mkLib final).overrideToolchain (p: p.msrvRustToolchain); craneLibMsrv = (inputs.crane.mkLib final).overrideToolchain (p: p.msrvRustToolchain);
cargoArtifacts = craneLib.buildDepsOnly cargoArtifacts = craneLib.buildDepsOnly
{ {
inherit src; src = filteredSrc;
strictDeps = true; strictDeps = true;
buildInputs = config.buildInputs final; buildInputs = config.buildInputs final;
nativeBuildInputs = config.nativeBuildInputs final; nativeBuildInputs = config.nativeBuildInputs final;
}; };
cargoArtifactsAllFeatures = craneLib.buildDepsOnly cargoArtifactsAllFeatures = craneLib.buildDepsOnly
{ {
inherit src; src = filteredSrc;
strictDeps = true; strictDeps = true;
cargoExtraArgs = "--locked --all-features"; cargoExtraArgs = "--locked --all-features";
pname = "${crateName}-all-features"; pname = "${crateName}-all-features";
@ -79,7 +80,7 @@ warnIf (! builtins ? readFileType) "Unsupported Nix version in use."
}; };
cargoArtifactsNoDefault = craneLib.buildDepsOnly cargoArtifactsNoDefault = craneLib.buildDepsOnly
{ {
inherit src; src = filteredSrc;
strictDeps = true; strictDeps = true;
cargoExtraArgs = "--locked --no-default-features"; cargoExtraArgs = "--locked --no-default-features";
pname = "${crateName}-no-default-features"; pname = "${crateName}-no-default-features";
@ -88,7 +89,7 @@ warnIf (! builtins ? readFileType) "Unsupported Nix version in use."
}; };
cargoArtifactsMsrv = craneLibMsrv.buildDepsOnly cargoArtifactsMsrv = craneLibMsrv.buildDepsOnly
{ {
inherit src; src = filteredSrc;
strictDeps = true; strictDeps = true;
cargoExtraArgs = "--locked --all-features"; cargoExtraArgs = "--locked --all-features";
pname = "${crateName}-msrv"; pname = "${crateName}-msrv";
@ -128,7 +129,7 @@ warnIf (! builtins ? readFileType) "Unsupported Nix version in use."
packages = { packages = {
default = { craneLib, cargoArtifacts, defaultMeta, pkgs }: craneLib.buildPackage { default = { craneLib, cargoArtifacts, defaultMeta, pkgs }: craneLib.buildPackage {
src = toSource { root = src; inherit (config) fileset; }; src = filteredSrc;
inherit cargoArtifacts; inherit cargoArtifacts;
doCheck = false; doCheck = false;
strictDeps = true; strictDeps = true;
@ -144,7 +145,7 @@ warnIf (! builtins ? readFileType) "Unsupported Nix version in use."
in in
targetCraneLib.buildPackage targetCraneLib.buildPackage
({ ({
src = toSource { root = src; inherit (config) fileset; }; src = filteredSrc;
doCheck = false; doCheck = false;
strictDeps = true; strictDeps = true;
meta = defaultMeta // { meta = defaultMeta // {
@ -179,13 +180,15 @@ warnIf (! builtins ? readFileType) "Unsupported Nix version in use."
, ... , ...
}: { }: {
test = craneLib.cargoTest { test = craneLib.cargoTest {
inherit src cargoArtifacts; src = filteredSrc;
inherit cargoArtifacts;
cargoExtraArgs = "--locked --all-targets --workspace"; cargoExtraArgs = "--locked --all-targets --workspace";
buildInputs = config.buildInputs pkgs; buildInputs = config.buildInputs pkgs;
nativeBuildInputs = config.nativeBuildInputs pkgs; nativeBuildInputs = config.nativeBuildInputs pkgs;
}; };
clippy = craneLib.cargoClippy { clippy = craneLib.cargoClippy {
inherit src cargoArtifacts; src = filteredSrc;
inherit cargoArtifacts;
strictDeps = true; strictDeps = true;
cargoClippyExtraArgs = "--all-targets ${maybeWorkspace} -- --deny warnings"; cargoClippyExtraArgs = "--all-targets ${maybeWorkspace} -- --deny warnings";
buildInputs = config.buildInputs pkgs; buildInputs = config.buildInputs pkgs;
@ -193,7 +196,7 @@ warnIf (! builtins ? readFileType) "Unsupported Nix version in use."
}; };
} // (optionalAttrs hasMsrv { } // (optionalAttrs hasMsrv {
msrv = craneLibMsrv.buildPackage { msrv = craneLibMsrv.buildPackage {
inherit src; src = filteredSrc;
pname = "${crateName}-msrv"; pname = "${crateName}-msrv";
cargoArtifacts = cargoArtifactsMsrv; cargoArtifacts = cargoArtifactsMsrv;
strictDeps = true; strictDeps = true;
@ -206,7 +209,7 @@ warnIf (! builtins ? readFileType) "Unsupported Nix version in use."
}; };
}) // (optionalAttrs hasFeatures { }) // (optionalAttrs hasFeatures {
test-all-features = craneLib.cargoTest { test-all-features = craneLib.cargoTest {
inherit src; src = filteredSrc;
pname = "${crateName}-all-features"; pname = "${crateName}-all-features";
strictDeps = true; strictDeps = true;
cargoArtifacts = cargoArtifactsAllFeatures; cargoArtifacts = cargoArtifactsAllFeatures;
@ -215,7 +218,7 @@ warnIf (! builtins ? readFileType) "Unsupported Nix version in use."
nativeBuildInputs = config.nativeBuildInputs pkgs; nativeBuildInputs = config.nativeBuildInputs pkgs;
}; };
clippy-all-features = craneLib.cargoClippy { clippy-all-features = craneLib.cargoClippy {
inherit src; src = filteredSrc;
pname = "${crateName}-all-features"; pname = "${crateName}-all-features";
strictDeps = true; strictDeps = true;
cargoArtifacts = cargoArtifactsAllFeatures; cargoArtifacts = cargoArtifactsAllFeatures;
@ -225,7 +228,7 @@ warnIf (! builtins ? readFileType) "Unsupported Nix version in use."
}; };
}) // (optionalAttrs hasDefaultFeatures { }) // (optionalAttrs hasDefaultFeatures {
test-no-default-features = craneLib.cargoTest { test-no-default-features = craneLib.cargoTest {
inherit src; src = filteredSrc;
pname = "${crateName}-no-default-features"; pname = "${crateName}-no-default-features";
strictDeps = true; strictDeps = true;
cargoArtifacts = cargoArtifactsNoDefault; cargoArtifacts = cargoArtifactsNoDefault;