mirror of
https://codeberg.org/icewind/palantir.git
synced 2026-06-03 18:24:08 +02:00
switch to cross-naersk
This commit is contained in:
parent
ed4cad0874
commit
969a417951
2 changed files with 37 additions and 65 deletions
24
flake.lock
generated
24
flake.lock
generated
|
|
@ -1,5 +1,28 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"cross-naersk": {
|
||||||
|
"inputs": {
|
||||||
|
"naersk": [
|
||||||
|
"naersk"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1686501881,
|
||||||
|
"narHash": "sha256-qFxW9cuCfvo7Kcc7mSt53wkP1ti4Y5PTXJKLARPIWm8=",
|
||||||
|
"owner": "icewind1991",
|
||||||
|
"repo": "cross-naersk",
|
||||||
|
"rev": "95a73c480942aa9910fab37c29e3412bd915252e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "icewind1991",
|
||||||
|
"repo": "cross-naersk",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"naersk": {
|
"naersk": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|
@ -38,6 +61,7 @@
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"cross-naersk": "cross-naersk",
|
||||||
"naersk": "naersk",
|
"naersk": "naersk",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"rust-overlay": "rust-overlay",
|
"rust-overlay": "rust-overlay",
|
||||||
|
|
|
||||||
78
flake.nix
78
flake.nix
|
|
@ -7,6 +7,9 @@
|
||||||
rust-overlay.url = "github:oxalica/rust-overlay";
|
rust-overlay.url = "github:oxalica/rust-overlay";
|
||||||
rust-overlay.inputs.nixpkgs.follows = "nixpkgs";
|
rust-overlay.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
rust-overlay.inputs.flake-utils.follows = "utils";
|
rust-overlay.inputs.flake-utils.follows = "utils";
|
||||||
|
cross-naersk.url = "github:icewind1991/cross-naersk";
|
||||||
|
cross-naersk.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
cross-naersk.inputs.naersk.follows = "naersk";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
|
|
@ -15,6 +18,7 @@
|
||||||
utils,
|
utils,
|
||||||
naersk,
|
naersk,
|
||||||
rust-overlay,
|
rust-overlay,
|
||||||
|
cross-naersk,
|
||||||
}:
|
}:
|
||||||
utils.lib.eachDefaultSystem (system: let
|
utils.lib.eachDefaultSystem (system: let
|
||||||
overlays = [ (import rust-overlay) ];
|
overlays = [ (import rust-overlay) ];
|
||||||
|
|
@ -23,13 +27,6 @@
|
||||||
};
|
};
|
||||||
lib = pkgs.lib;
|
lib = pkgs.lib;
|
||||||
|
|
||||||
pkgs-cross-mingw = import nixpkgs {
|
|
||||||
crossSystem = {
|
|
||||||
config = "x86_64-w64-mingw32";
|
|
||||||
};
|
|
||||||
inherit system overlays;
|
|
||||||
};
|
|
||||||
|
|
||||||
hostTarget = pkgs.hostPlatform.config;
|
hostTarget = pkgs.hostPlatform.config;
|
||||||
targets = [
|
targets = [
|
||||||
hostTarget
|
hostTarget
|
||||||
|
|
@ -42,36 +39,11 @@
|
||||||
|
|
||||||
releaseTargets = lib.lists.remove hostTarget targets;
|
releaseTargets = lib.lists.remove hostTarget targets;
|
||||||
|
|
||||||
toolchain = (pkgs.rust-bin.stable.latest.default.override { inherit targets; });
|
|
||||||
execSufficForTarget = target: if lib.strings.hasInfix "windows" target then ".exe" else "";
|
execSufficForTarget = target: if lib.strings.hasInfix "windows" target then ".exe" else "";
|
||||||
artifactForTarget = target: "palantir${execSufficForTarget target}";
|
artifactForTarget = target: "palantir${execSufficForTarget target}";
|
||||||
assetNameForTarget = target: "palantir-${builtins.replaceStrings ["-unknown" "-gnu" "-musl" "abihf" "-pc"] ["" "" "" "" ""] target}${execSufficForTarget target}";
|
assetNameForTarget = target: "palantir-${builtins.replaceStrings ["-unknown" "-gnu" "-musl" "abihf" "-pc"] ["" "" "" "" ""] target}${execSufficForTarget target}";
|
||||||
|
|
||||||
crossArgs = {
|
cross-naersk' = pkgs.callPackage cross-naersk {inherit naersk;};
|
||||||
"armv7-unknown-linux-musleabihf" = {
|
|
||||||
nativeBuildInputs = [ pkgs.pkgsCross.armv7l-hf-multiplatform.stdenv.cc ];
|
|
||||||
CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABIHF_RUSTFLAGS = "-C target-feature=+crt-static";
|
|
||||||
CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABIHF_LINKER = "${pkgs.pkgsCross.armv7l-hf-multiplatform.stdenv.cc.targetPrefix}cc";
|
|
||||||
};
|
|
||||||
"aarch64-unknown-linux-musl" = {
|
|
||||||
nativeBuildInputs = [ pkgs.pkgsCross.aarch64-multiplatform-musl.stdenv.cc ];
|
|
||||||
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS = "-C target-feature=+crt-static";
|
|
||||||
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER = "${pkgs.pkgsCross.aarch64-multiplatform-musl.stdenv.cc.targetPrefix}cc";
|
|
||||||
};
|
|
||||||
"i686-unknown-linux-musl" = {
|
|
||||||
nativeBuildInputs = [ pkgs.pkgsCross.musl32.stdenv.cc ];
|
|
||||||
CARGO_TARGET_I686_UNKNOWN_LINUX_MUSL_RUSTFLAGS = "-C target-feature=+crt-static";
|
|
||||||
CARGO_TARGET_I686_UNKNOWN_LINUX_MUSL_LINKER = "${pkgs.pkgsCross.musl32.stdenv.cc.targetPrefix}cc";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
mingw_w64_cc = pkgs.pkgsCross.mingwW64.stdenv.cc;
|
|
||||||
windows = pkgs.pkgsCross.mingwW64.windows;
|
|
||||||
|
|
||||||
naersk' = pkgs.callPackage naersk {
|
|
||||||
cargo = toolchain;
|
|
||||||
rustc = toolchain;
|
|
||||||
};
|
|
||||||
|
|
||||||
addUdev = ''
|
addUdev = ''
|
||||||
mkdir -p $out/lib/udev/rules.d/
|
mkdir -p $out/lib/udev/rules.d/
|
||||||
|
|
@ -84,37 +56,19 @@
|
||||||
nearskOpt = {
|
nearskOpt = {
|
||||||
pname = "palantir";
|
pname = "palantir";
|
||||||
root = src;
|
root = src;
|
||||||
};
|
|
||||||
|
|
||||||
buildWindows = target: naersk'.buildPackage (nearskOpt // {
|
|
||||||
strictDeps = true;
|
|
||||||
depsBuildBuild = with pkgs; [
|
|
||||||
mingw_w64_cc
|
|
||||||
];
|
|
||||||
nativeBuildInputs = [ mingw_w64_cc ];
|
|
||||||
# only add pthreads when building the final package, not when building the dependencies
|
|
||||||
# otherwise it interferes with building build scripts
|
|
||||||
overrideMain = args: args // { buildInputs = [ windows.pthreads ]; };
|
|
||||||
|
|
||||||
CARGO_BUILD_TARGET = target;
|
|
||||||
});
|
|
||||||
|
|
||||||
buildLinux = target: naersk'.buildPackage (nearskOpt // {
|
|
||||||
postInstall = addUdev;
|
postInstall = addUdev;
|
||||||
|
};
|
||||||
CARGO_BUILD_TARGET = target;
|
buildTarget = target: (cross-naersk' target).buildPackage nearskOpt;
|
||||||
} // (if (hostTarget != target) then (crossArgs.${target} or {}) else {}));
|
hostNaersk = (cross-naersk' hostTarget);
|
||||||
buildAny = target: if (nixpkgs.lib.strings.hasInfix "windows" target) then (buildWindows target) else (buildLinux target);
|
|
||||||
in rec {
|
in rec {
|
||||||
# `nix build`
|
# `nix build`
|
||||||
packages = nixpkgs.lib.attrsets.genAttrs targets buildAny // rec {
|
packages = nixpkgs.lib.attrsets.genAttrs targets buildTarget // rec {
|
||||||
palantir = naersk'.buildPackage (nearskOpt // {
|
palantir = packages.${hostTarget};
|
||||||
postInstall = addUdev;
|
check = hostNaersk.buildPackage (nearskOpt // {
|
||||||
});
|
|
||||||
check = naersk'.buildPackage (nearskOpt // {
|
|
||||||
mode = "check";
|
mode = "check";
|
||||||
});
|
});
|
||||||
clippy = naersk'.buildPackage (nearskOpt // {
|
clippy = hostNaersk.buildPackage (nearskOpt // {
|
||||||
mode = "clippy";
|
mode = "clippy";
|
||||||
});
|
});
|
||||||
default = palantir;
|
default = palantir;
|
||||||
|
|
@ -137,15 +91,9 @@
|
||||||
# `nix develop`
|
# `nix develop`
|
||||||
devShells.default = pkgs.mkShell {
|
devShells.default = pkgs.mkShell {
|
||||||
nativeBuildInputs = with pkgs; [
|
nativeBuildInputs = with pkgs; [
|
||||||
toolchain
|
pkgs.rust-bin.stable.latest.default
|
||||||
bacon
|
bacon
|
||||||
mingw_w64_cc
|
|
||||||
];
|
];
|
||||||
depsBuildBuild = [ pkgs.wine64 ];
|
|
||||||
# buildInputs = [ windows.pthreads ];
|
|
||||||
|
|
||||||
CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER = "${mingw_w64_cc.targetPrefix}cc";
|
|
||||||
CARGO_TARGET_X86_64_PC_WINDOWS_GNU_RUNNER = "wine64";
|
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
// {
|
// {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue