Upgrade flake build process
The previous build process was MASSIVELY inefficient in multiple ways. This is a massive improvement.
This commit is contained in:
parent
41475046ed
commit
303f955de4
44
flake.nix
44
flake.nix
|
@ -14,21 +14,39 @@
|
|||
flake-utils.lib.eachDefaultSystem (system:
|
||||
let pkgs = import nixpkgs { inherit system; };
|
||||
craneLib = crane.lib.${system};
|
||||
|
||||
commonArgs = {
|
||||
version = "0.1.0";
|
||||
src = craneLib.path ./.;
|
||||
cargoBuildFlags = "-p cli";
|
||||
buildInputs = [ pkgs.openssl ];
|
||||
nativeBuildInputs = [ pkgs.pkg-config ];
|
||||
};
|
||||
|
||||
# Cargo build dependencies/artifacts only
|
||||
# This derivation exists so that multiple builds can reuse
|
||||
# the same build artifacts
|
||||
cargoArtifacts = craneLib.buildDepsOnly (commonArgs // {
|
||||
pname = "ggelo-deps";
|
||||
});
|
||||
|
||||
# Run clippy (and deny all warnings) on the crate source
|
||||
runClippy = craneLib.cargoClippy (commonArgs // {
|
||||
pname = "ggelo-clippy-check";
|
||||
cargoClippyExtraArgs = "--all-targets -- --deny warnings";
|
||||
inherit cargoArtifacts;
|
||||
});
|
||||
|
||||
ggelo = craneLib.buildPackage (commonArgs // {
|
||||
pname = "ggelo";
|
||||
inherit cargoArtifacts;
|
||||
});
|
||||
in {
|
||||
packages.ggelo = craneLib.buildPackage {
|
||||
pname = "ggelo";
|
||||
version = "0.1.0";
|
||||
src = ./.;
|
||||
cargoBuildFlags = "-p cli";
|
||||
packages.ggelo = ggelo;
|
||||
packages.default = ggelo;
|
||||
|
||||
nativeBuildInputs = [ pkgs.pkg-config ];
|
||||
PKG_CONFIG_PATH = "${pkgs.openssl.dev}/lib/pkgconfig";
|
||||
|
||||
doCheck = true;
|
||||
};
|
||||
|
||||
packages.default = self.packages.${system}.ggelo;
|
||||
checks.default = self.packages.${system}.ggelo;
|
||||
checks.build = ggelo;
|
||||
checks.runClippy = runClippy;
|
||||
|
||||
devShells.default = pkgs.mkShell {
|
||||
packages = with pkgs; [ rustc cargo pkg-config rust-analyzer ];
|
||||
|
|
Loading…
Reference in a new issue