diff options
author | Quentin Dufour <quentin@deuxfleurs.fr> | 2023-05-10 16:01:29 +0200 |
---|---|---|
committer | Quentin Dufour <quentin@deuxfleurs.fr> | 2023-05-10 16:01:29 +0200 |
commit | 76d02fe3008a67f08bc438a932df61f9ef6ca5a0 (patch) | |
tree | 76e960c40d5914244c709158870f36fbf41b3274 | |
parent | afb5ef17646e191eefc59428d7e86a2d675d16d1 (diff) | |
download | aerogramme-76d02fe3008a67f08bc438a932df61f9ef6ca5a0.tar.gz aerogramme-76d02fe3008a67f08bc438a932df61f9ef6ca5a0.zip |
clippy build
-rw-r--r-- | flake.nix | 46 |
1 files changed, 43 insertions, 3 deletions
@@ -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; }); } |