aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Dufour <quentin@deuxfleurs.fr>2023-05-10 16:01:29 +0200
committerQuentin Dufour <quentin@deuxfleurs.fr>2023-05-10 16:01:29 +0200
commit76d02fe3008a67f08bc438a932df61f9ef6ca5a0 (patch)
tree76e960c40d5914244c709158870f36fbf41b3274
parentafb5ef17646e191eefc59428d7e86a2d675d16d1 (diff)
downloadaerogramme-76d02fe3008a67f08bc438a932df61f9ef6ca5a0.tar.gz
aerogramme-76d02fe3008a67f08bc438a932df61f9ef6ca5a0.zip
clippy build
-rw-r--r--flake.nix46
1 files changed, 43 insertions, 3 deletions
diff --git a/flake.nix b/flake.nix
index d7c2ac5..6c26087 100644
--- a/flake.nix
+++ b/flake.nix
@@ -58,10 +58,12 @@
};
rustTarget = if targetHost == "armv6l-unknown-linux-musleabihf" then "arm-unknown-linux-musleabihf" else targetHost;
-
- rustPkgs = pkgs.rustBuilder.makePackageSet({
+
+ # release builds
+ rustRelease = pkgs.rustBuilder.makePackageSet({
packageFun = import ./Cargo.nix;
target = rustTarget;
+ release = true;
rustToolchain = with fenix.packages.x86_64-linux; combine [
minimal.cargo
minimal.rustc
@@ -69,9 +71,47 @@
];
});
+ # debug builds with clippy as the compiler (hack to speed up compilation)
+ debugBuildEnv = (drv:
+ ''
+ ${drv.setBuildEnv or ""}
+ echo
+ echo --- BUILDING WITH CLIPPY ---
+ echo
+
+ export NIX_RUST_BUILD_FLAGS="''${NIX_RUST_BUILD_FLAGS} --deny warnings"
+ export RUSTC="''${CLIPPY_DRIVER}"
+ '');
+ rustDebug = pkgs.rustBuilder.makePackageSet({
+ packageFun = import ./Cargo.nix;
+ target = rustTarget;
+ release = false;
+ rustToolchain = with fenix.packages.x86_64-linux; combine [
+ default.cargo
+ default.rustc
+ default.clippy
+ targets.${rustTarget}.latest.rust-std
+ ];
+ packageOverrides = pkgs: pkgs.rustBuilder.overrides.all ++ [
+ (pkgs.rustBuilder.rustLib.makeOverride {
+ name = "aerogramme";
+ overrideAttrs = drv: {
+ setBuildEnv = (debugBuildEnv drv);
+ };
+ })
+ ];
+ });
+
+ # binary extract
+ # @TODO
+
+ # docker packaging
+ # @TODO
+
in {
devShells.default = shell;
- packages.aerogramme = (rustPkgs.workspace.aerogramme {}).bin;
+ packages.debug = (rustDebug.workspace.aerogramme {}).bin;
+ packages.aerogramme = (rustRelease.workspace.aerogramme {}).bin;
packages.default = self.packages.${targetHost}.aerogramme;
});
}