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
|
||||
]);
|
||||
|
||||
# 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.
|
||||
crates = pkgs.callPackage ./Cargo.nix {
|
||||
defaultCrateOverrides = pkgs.defaultCrateOverrides // {
|
||||
|
@ -50,7 +31,7 @@ let
|
|||
};
|
||||
|
||||
tvix-build = prev: {
|
||||
src = filterRustCrateSrc rec {
|
||||
src = depot.tvix.utils.filterRustCrateSrc rec {
|
||||
root = prev.src.origSrc;
|
||||
extraFileset = (lib.fileset.fileFilter (f: f.hasExt "proto") root);
|
||||
};
|
||||
|
@ -60,7 +41,7 @@ let
|
|||
};
|
||||
|
||||
tvix-castore = prev: {
|
||||
src = filterRustCrateSrc rec {
|
||||
src = depot.tvix.utils.filterRustCrateSrc rec {
|
||||
root = prev.src.origSrc;
|
||||
extraFileset = (lib.fileset.fileFilter (f: f.hasExt "proto") root);
|
||||
};
|
||||
|
@ -69,12 +50,12 @@ let
|
|||
};
|
||||
|
||||
tvix-cli = prev: {
|
||||
src = filterRustCrateSrc { root = prev.src.origSrc; };
|
||||
src = depot.tvix.utils.filterRustCrateSrc { root = prev.src.origSrc; };
|
||||
buildInputs = prev.buildInputs or [ ] ++ darwinDeps;
|
||||
};
|
||||
|
||||
tvix-store = prev: {
|
||||
src = filterRustCrateSrc rec {
|
||||
src = depot.tvix.utils.filterRustCrateSrc rec {
|
||||
root = prev.src.origSrc;
|
||||
extraFileset = (lib.fileset.fileFilter (f: f.hasExt "proto") root);
|
||||
};
|
||||
|
@ -87,32 +68,32 @@ let
|
|||
};
|
||||
|
||||
tvix-eval-builtin-macros = prev: {
|
||||
src = filterRustCrateSrc { root = prev.src.origSrc; };
|
||||
src = depot.tvix.utils.filterRustCrateSrc { root = prev.src.origSrc; };
|
||||
};
|
||||
|
||||
tvix-eval = prev: {
|
||||
src = filterRustCrateSrc rec {
|
||||
src = depot.tvix.utils.filterRustCrateSrc rec {
|
||||
root = prev.src.origSrc;
|
||||
extraFileset = (root + "/proptest-regressions");
|
||||
};
|
||||
};
|
||||
|
||||
tvix-glue = prev: {
|
||||
src = filterRustCrateSrc {
|
||||
src = depot.tvix.utils.filterRustCrateSrc {
|
||||
root = prev.src.origSrc;
|
||||
};
|
||||
};
|
||||
|
||||
tvix-serde = prev: {
|
||||
src = filterRustCrateSrc { root = prev.src.origSrc; };
|
||||
src = depot.tvix.utils.filterRustCrateSrc { root = prev.src.origSrc; };
|
||||
};
|
||||
|
||||
tvix-tracing = prev: {
|
||||
src = filterRustCrateSrc { root = prev.src.origSrc; };
|
||||
src = depot.tvix.utils.filterRustCrateSrc { root = prev.src.origSrc; };
|
||||
};
|
||||
|
||||
nix-compat = prev: {
|
||||
src = filterRustCrateSrc rec {
|
||||
src = depot.tvix.utils.filterRustCrateSrc rec {
|
||||
root = prev.src.origSrc;
|
||||
extraFileset = (root + "/testdata");
|
||||
};
|
||||
|
|
|
@ -20,4 +20,23 @@
|
|||
);
|
||||
})
|
||||
(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