chore(tvix): move filterRustCrateSrc to utils.nix
Change-Id: Ib6bae1ea0457d3309a6ec1e08b9e4b320523c161 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11857 Autosubmit: Ilan Joselevich <personal@ilanjoselevich.com> Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
This commit is contained in:
parent
ac51803ad8
commit
92c5433304
2 changed files with 29 additions and 29 deletions
|
@ -11,25 +11,6 @@ let
|
||||||
SystemConfiguration
|
SystemConfiguration
|
||||||
]);
|
]);
|
||||||
|
|
||||||
# Filters the given source, only keeping files related to the build, preventing unnecessary rebuilds.
|
|
||||||
# Includes src in the root, all other .rs files, as well as Cargo.toml.
|
|
||||||
# Additional files to be included can be specified in extraFileset.
|
|
||||||
filterRustCrateSrc =
|
|
||||||
{ root # The original src
|
|
||||||
, extraFileset ? null # Additional filesets to include (e.g. fileFilter for proto files)
|
|
||||||
}:
|
|
||||||
lib.fileset.toSource {
|
|
||||||
inherit root;
|
|
||||||
fileset = (lib.fileset.intersection
|
|
||||||
(lib.fileset.fromSource root) # We build our final fileset from the original src
|
|
||||||
(lib.fileset.unions ([
|
|
||||||
(root + "/src")
|
|
||||||
(lib.fileset.fileFilter (f: f.hasExt "rs") root)
|
|
||||||
# We assume that every Rust crate will at a minimum have .rs files and a Cargo.toml
|
|
||||||
(lib.fileset.fileFilter (f: f.name == "Cargo.toml") root)
|
|
||||||
] ++ lib.optional (extraFileset != null) extraFileset)));
|
|
||||||
};
|
|
||||||
|
|
||||||
# Load the crate2nix crate tree.
|
# Load the crate2nix crate tree.
|
||||||
crates = pkgs.callPackage ./Cargo.nix {
|
crates = pkgs.callPackage ./Cargo.nix {
|
||||||
defaultCrateOverrides = pkgs.defaultCrateOverrides // {
|
defaultCrateOverrides = pkgs.defaultCrateOverrides // {
|
||||||
|
@ -50,7 +31,7 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
tvix-build = prev: {
|
tvix-build = prev: {
|
||||||
src = filterRustCrateSrc rec {
|
src = depot.tvix.utils.filterRustCrateSrc rec {
|
||||||
root = prev.src.origSrc;
|
root = prev.src.origSrc;
|
||||||
extraFileset = (lib.fileset.fileFilter (f: f.hasExt "proto") root);
|
extraFileset = (lib.fileset.fileFilter (f: f.hasExt "proto") root);
|
||||||
};
|
};
|
||||||
|
@ -60,7 +41,7 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
tvix-castore = prev: {
|
tvix-castore = prev: {
|
||||||
src = filterRustCrateSrc rec {
|
src = depot.tvix.utils.filterRustCrateSrc rec {
|
||||||
root = prev.src.origSrc;
|
root = prev.src.origSrc;
|
||||||
extraFileset = (lib.fileset.fileFilter (f: f.hasExt "proto") root);
|
extraFileset = (lib.fileset.fileFilter (f: f.hasExt "proto") root);
|
||||||
};
|
};
|
||||||
|
@ -69,12 +50,12 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
tvix-cli = prev: {
|
tvix-cli = prev: {
|
||||||
src = filterRustCrateSrc { root = prev.src.origSrc; };
|
src = depot.tvix.utils.filterRustCrateSrc { root = prev.src.origSrc; };
|
||||||
buildInputs = prev.buildInputs or [ ] ++ darwinDeps;
|
buildInputs = prev.buildInputs or [ ] ++ darwinDeps;
|
||||||
};
|
};
|
||||||
|
|
||||||
tvix-store = prev: {
|
tvix-store = prev: {
|
||||||
src = filterRustCrateSrc rec {
|
src = depot.tvix.utils.filterRustCrateSrc rec {
|
||||||
root = prev.src.origSrc;
|
root = prev.src.origSrc;
|
||||||
extraFileset = (lib.fileset.fileFilter (f: f.hasExt "proto") root);
|
extraFileset = (lib.fileset.fileFilter (f: f.hasExt "proto") root);
|
||||||
};
|
};
|
||||||
|
@ -87,32 +68,32 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
tvix-eval-builtin-macros = prev: {
|
tvix-eval-builtin-macros = prev: {
|
||||||
src = filterRustCrateSrc { root = prev.src.origSrc; };
|
src = depot.tvix.utils.filterRustCrateSrc { root = prev.src.origSrc; };
|
||||||
};
|
};
|
||||||
|
|
||||||
tvix-eval = prev: {
|
tvix-eval = prev: {
|
||||||
src = filterRustCrateSrc rec {
|
src = depot.tvix.utils.filterRustCrateSrc rec {
|
||||||
root = prev.src.origSrc;
|
root = prev.src.origSrc;
|
||||||
extraFileset = (root + "/proptest-regressions");
|
extraFileset = (root + "/proptest-regressions");
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
tvix-glue = prev: {
|
tvix-glue = prev: {
|
||||||
src = filterRustCrateSrc {
|
src = depot.tvix.utils.filterRustCrateSrc {
|
||||||
root = prev.src.origSrc;
|
root = prev.src.origSrc;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
tvix-serde = prev: {
|
tvix-serde = prev: {
|
||||||
src = filterRustCrateSrc { root = prev.src.origSrc; };
|
src = depot.tvix.utils.filterRustCrateSrc { root = prev.src.origSrc; };
|
||||||
};
|
};
|
||||||
|
|
||||||
tvix-tracing = prev: {
|
tvix-tracing = prev: {
|
||||||
src = filterRustCrateSrc { root = prev.src.origSrc; };
|
src = depot.tvix.utils.filterRustCrateSrc { root = prev.src.origSrc; };
|
||||||
};
|
};
|
||||||
|
|
||||||
nix-compat = prev: {
|
nix-compat = prev: {
|
||||||
src = filterRustCrateSrc rec {
|
src = depot.tvix.utils.filterRustCrateSrc rec {
|
||||||
root = prev.src.origSrc;
|
root = prev.src.origSrc;
|
||||||
extraFileset = (root + "/testdata");
|
extraFileset = (root + "/testdata");
|
||||||
};
|
};
|
||||||
|
|
|
@ -20,4 +20,23 @@
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
(powerset features));
|
(powerset features));
|
||||||
|
|
||||||
|
# Filters the given source, only keeping files related to the build, preventing unnecessary rebuilds.
|
||||||
|
# Includes src in the root, all other .rs files, as well as Cargo.toml.
|
||||||
|
# Additional files to be included can be specified in extraFileset.
|
||||||
|
filterRustCrateSrc =
|
||||||
|
{ root # The original src
|
||||||
|
, extraFileset ? null # Additional filesets to include (e.g. fileFilter for proto files)
|
||||||
|
}:
|
||||||
|
lib.fileset.toSource {
|
||||||
|
inherit root;
|
||||||
|
fileset = (lib.fileset.intersection
|
||||||
|
(lib.fileset.fromSource root) # We build our final fileset from the original src
|
||||||
|
(lib.fileset.unions ([
|
||||||
|
(root + "/src")
|
||||||
|
(lib.fileset.fileFilter (f: f.hasExt "rs") root)
|
||||||
|
# We assume that every Rust crate will at a minimum have .rs files and a Cargo.toml
|
||||||
|
(lib.fileset.fileFilter (f: f.name == "Cargo.toml") root)
|
||||||
|
] ++ lib.optional (extraFileset != null) extraFileset)));
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue