fix(build): statically linked binaries for linux (#55)

This commit is contained in:
Jens Krause
2025-01-22 09:43:51 +01:00
committed by GitHub
parent 6d2bf5ac09
commit 59c99f4f5c
4 changed files with 22 additions and 11 deletions

View File

@@ -23,6 +23,7 @@
minimal.rustc
minimal.cargo
targets.x86_64-pc-windows-gnu.latest.rust-std
targets.x86_64-unknown-linux-musl.latest.rust-std
];
craneLib = (crane.mkLib pkgs).overrideToolchain toolchain;
@@ -32,19 +33,24 @@
cargoArtifacts = craneLib.buildDepsOnly {
src = craneLib.cleanCargoSource ./.;
};
strictDeps = true;
doCheck = false; # skip tests during nix build
};
# Native build
timr = craneLib.buildPackage commonArgs;
# Linux build w/ statically linked binaries
staticLinuxBuild = craneLib.buildPackage (commonArgs
// {
CARGO_BUILD_TARGET = "x86_64-unknown-linux-musl";
CARGO_BUILD_RUSTFLAGS = "-C target-feature=+crt-static";
});
# Windows cross-compilation build
# @see https://crane.dev/examples/cross-windows.html
crossBuild = craneLib.buildPackage {
src = craneLib.cleanCargoSource ./.;
strictDeps = true;
doCheck = false;
windowsBuild = craneLib.buildPackage {
inherit (commonArgs) src strictDeps doCheck;
CARGO_BUILD_TARGET = "x86_64-pc-windows-gnu";
@@ -65,7 +71,8 @@
packages = {
inherit timr;
default = timr;
windows = crossBuild;
linuxStatic = staticLinuxBuild;
windows = windowsBuild;
};
# Development shell with all necessary tools