From 76d02fe3008a67f08bc438a932df61f9ef6ca5a0 Mon Sep 17 00:00:00 2001 From: Quentin Dufour Date: Wed, 10 May 2023 16:01:29 +0200 Subject: [PATCH] clippy build --- flake.nix | 46 +++++++++++++++++++++++++++++++++++++++++++--- 1 file 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; }); }