+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
targets.x86_64-pc-windows-gnu.latest.rust-std
20
targets.x86_64-unknown-linux-gnu.latest.rust-std
21
targets.aarch64-apple-darwin.latest.rust-std
22
];
23
# configure crates
24
nci.crates."wisp-cli" = {
···
26
dev.runTests = false;
27
release.runTests = false;
28
};
29
-
targets."x86_64-unknown-linux-gnu" = {
30
default = true;
31
};
32
targets."x86_64-pc-windows-gnu" = let
33
targetPkgs = pkgs.pkgsCross.mingwW64;
···
46
};
47
targets."aarch64-apple-darwin" = let
48
targetPkgs = pkgs.pkgsCross.aarch64-darwin;
49
targetCC = targetPkgs.stdenv.cc;
50
targetCargoEnvVarTarget = targetPkgs.stdenv.hostPlatform.rust.cargoEnvVarTarget;
51
in rec {
···
19
targets.x86_64-pc-windows-gnu.latest.rust-std
20
targets.x86_64-unknown-linux-gnu.latest.rust-std
21
targets.aarch64-apple-darwin.latest.rust-std
22
+
targets.aarch64-unknown-linux-gnu.latest.rust-std
23
];
24
# configure crates
25
nci.crates."wisp-cli" = {
···
27
dev.runTests = false;
28
release.runTests = false;
29
};
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 {
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;
44
};
45
targets."x86_64-pc-windows-gnu" = let
46
targetPkgs = pkgs.pkgsCross.mingwW64;
···
59
};
60
targets."aarch64-apple-darwin" = let
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;
76
targetCC = targetPkgs.stdenv.cc;
77
targetCargoEnvVarTarget = targetPkgs.stdenv.hostPlatform.rust.cargoEnvVarTarget;
78
in rec {
+17
-2
flake.nix
+17
-2
flake.nix
···
26
...
27
}: let
28
crateOutputs = config.nci.outputs."wisp-cli";
29
in {
30
devShells.default = crateOutputs.devShell;
31
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;
34
};
35
};
36
}
···
26
...
27
}: let
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
+
'';
33
in {
34
devShells.default = crateOutputs.devShell;
35
packages.default = crateOutputs.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
+
};
49
};
50
};
51
}