+1
-1
cli/Cargo.lock
+1
-1
cli/Cargo.lock
+1
-1
cli/Cargo.toml
+1
-1
cli/Cargo.toml
+28
-1
crates.nix
+28
-1
crates.nix
···
19
19
targets.x86_64-pc-windows-gnu.latest.rust-std
20
20
targets.x86_64-unknown-linux-gnu.latest.rust-std
21
21
targets.aarch64-apple-darwin.latest.rust-std
22
+
targets.aarch64-unknown-linux-gnu.latest.rust-std
22
23
];
23
24
# configure crates
24
25
nci.crates."wisp-cli" = {
···
26
27
dev.runTests = false;
27
28
release.runTests = false;
28
29
};
29
-
targets."x86_64-unknown-linux-gnu" = {
30
+
targets."x86_64-unknown-linux-gnu" = let
31
+
targetPkgs = pkgs.pkgsCross.gnu64;
32
+
targetCC = targetPkgs.stdenv.cc;
33
+
targetCargoEnvVarTarget = targetPkgs.stdenv.hostPlatform.rust.cargoEnvVarTarget;
34
+
in rec {
30
35
default = true;
36
+
depsDrvConfig.mkDerivation = {
37
+
nativeBuildInputs = [targetCC];
38
+
};
39
+
depsDrvConfig.env = rec {
40
+
TARGET_CC = "${targetCC.targetPrefix}cc";
41
+
"CARGO_TARGET_${targetCargoEnvVarTarget}_LINKER" = TARGET_CC;
42
+
};
43
+
drvConfig = depsDrvConfig;
31
44
};
32
45
targets."x86_64-pc-windows-gnu" = let
33
46
targetPkgs = pkgs.pkgsCross.mingwW64;
···
46
59
};
47
60
targets."aarch64-apple-darwin" = let
48
61
targetPkgs = pkgs.pkgsCross.aarch64-darwin;
62
+
targetCC = targetPkgs.stdenv.cc;
63
+
targetCargoEnvVarTarget = targetPkgs.stdenv.hostPlatform.rust.cargoEnvVarTarget;
64
+
in rec {
65
+
depsDrvConfig.mkDerivation = {
66
+
nativeBuildInputs = [targetCC];
67
+
};
68
+
depsDrvConfig.env = rec {
69
+
TARGET_CC = "${targetCC.targetPrefix}cc";
70
+
"CARGO_TARGET_${targetCargoEnvVarTarget}_LINKER" = TARGET_CC;
71
+
};
72
+
drvConfig = depsDrvConfig;
73
+
};
74
+
targets."aarch64-unknown-linux-gnu" = let
75
+
targetPkgs = pkgs.pkgsCross.aarch64-multiplatform;
49
76
targetCC = targetPkgs.stdenv.cc;
50
77
targetCargoEnvVarTarget = targetPkgs.stdenv.hostPlatform.rust.cargoEnvVarTarget;
51
78
in rec {
+17
-2
flake.nix
+17
-2
flake.nix
···
26
26
...
27
27
}: let
28
28
crateOutputs = config.nci.outputs."wisp-cli";
29
+
mkRenamedPackage = name: pkg: pkgs.runCommand name {} ''
30
+
mkdir -p $out/bin
31
+
cp ${pkg}/bin/wisp-cli $out/bin/${name}
32
+
'';
29
33
in {
30
34
devShells.default = crateOutputs.devShell;
31
35
packages.default = crateOutputs.packages.release;
32
-
packages.wisp-cli-windows = crateOutputs.allTargets."x86_64-pc-windows-gnu".packages.release;
33
-
packages.wisp-cli-darwin = crateOutputs.allTargets."aarch64-apple-darwin".packages.release;
36
+
packages.wisp-cli-x86_64-linux = mkRenamedPackage "wisp-cli-x86_64-linux" crateOutputs.packages.release;
37
+
packages.wisp-cli-aarch64-linux = mkRenamedPackage "wisp-cli-aarch64-linux" crateOutputs.allTargets."aarch64-unknown-linux-gnu".packages.release;
38
+
packages.wisp-cli-x86_64-windows = mkRenamedPackage "wisp-cli-x86_64-windows.exe" crateOutputs.allTargets."x86_64-pc-windows-gnu".packages.release;
39
+
packages.wisp-cli-aarch64-darwin = mkRenamedPackage "wisp-cli-aarch64-darwin" crateOutputs.allTargets."aarch64-apple-darwin".packages.release;
40
+
packages.all = pkgs.symlinkJoin {
41
+
name = "wisp-cli-all";
42
+
paths = [
43
+
config.packages.wisp-cli-x86_64-linux
44
+
config.packages.wisp-cli-aarch64-linux
45
+
config.packages.wisp-cli-x86_64-windows
46
+
config.packages.wisp-cli-aarch64-darwin
47
+
];
48
+
};
34
49
};
35
50
};
36
51
}