chore: Refactor common cargo build derivations into own function

This creates a mkCargoBuild function of the shared bits from clippy and
rust-docs uses it for those targets.

Change-Id: I44f9f2b319ea4ef1d1236feabdf726f0256d5d70
Reviewed-on: https://cl.snix.dev/c/snix/+/30647
Reviewed-by: Florian Klink <flokli@flokli.de>
Autosubmit: Brian Olsen <brian@maven-group.org>
Tested-by: besadii
This commit is contained in:
Brian Olsen 2025-07-22 17:14:42 +02:00 committed by clbot
parent 8e609804b9
commit a82bd9137e

View file

@ -36,9 +36,22 @@ let
]; ];
}; };
mkCargoBuild = args: pkgs.stdenv.mkDerivation ({
inherit cargoDeps src;
PROTO_ROOT = protos;
SNIX_BUILD_SANDBOX_SHELL = "/homeless-shelter";
nativeBuildInputs = with pkgs; [
cargo
pkg-config
protobuf
rustc
rustPlatform.cargoSetupHook
] ++ (args.nativeBuildInputs or [ ]);
} // (pkgs.lib.removeAttrs args [ "nativeBuildInputs" ]));
in in
{ {
inherit crates protos; inherit crates protos mkCargoBuild;
# Provide the snix logo in both .webp and .png format. # Provide the snix logo in both .webp and .png format.
logo = pkgs.runCommand "logo" logo = pkgs.runCommand "logo"
@ -63,19 +76,8 @@ in
shell-integration = (import ./shell.nix { inherit pkgs; withIntegration = true; }); shell-integration = (import ./shell.nix { inherit pkgs; withIntegration = true; });
# Build the Rust documentation for publishing on snix.dev/rustdoc. # Build the Rust documentation for publishing on snix.dev/rustdoc.
rust-docs = pkgs.stdenv.mkDerivation { rust-docs = mkCargoBuild {
inherit cargoDeps src;
name = "snix-rust-docs"; name = "snix-rust-docs";
PROTO_ROOT = protos;
SNIX_BUILD_SANDBOX_SHELL = "/homeless-shelter";
nativeBuildInputs = with pkgs; [
cargo
pkg-config
protobuf
rustc
rustPlatform.cargoSetupHook
];
buildInputs = [ buildInputs = [
pkgs.fuse pkgs.fuse
@ -89,22 +91,15 @@ in
# Run cargo clippy. We run it with -Dwarnings, so warnings cause a nonzero # Run cargo clippy. We run it with -Dwarnings, so warnings cause a nonzero
# exit code. # exit code.
clippy = pkgs.stdenv.mkDerivation { clippy = mkCargoBuild {
inherit cargoDeps src;
name = "snix-clippy"; name = "snix-clippy";
PROTO_ROOT = protos;
SNIX_BUILD_SANDBOX_SHELL = "/homeless-shelter";
buildInputs = [ buildInputs = [
pkgs.fuse pkgs.fuse
]; ];
nativeBuildInputs = with pkgs; [ nativeBuildInputs = with pkgs; [
cargo
clippy clippy
pkg-config
protobuf
rustc
rustPlatform.cargoSetupHook
]; ];
buildPhase = "cargo clippy --tests --all-features --benches --examples -- -Dwarnings | tee $out"; buildPhase = "cargo clippy --tests --all-features --benches --examples -- -Dwarnings | tee $out";