83 lines
2.0 KiB
Nix
83 lines
2.0 KiB
Nix
{
|
|
pkgs,
|
|
system,
|
|
...
|
|
}: let
|
|
mkRustBuild = import ./make-binary.nix;
|
|
mkArchive = import ./make-archive.nix;
|
|
targets = {
|
|
linux-x86_64 = {
|
|
crossPkgs = pkgs;
|
|
triple = "x86_64-unknown-linux-gnu";
|
|
exeSuffix = "";
|
|
};
|
|
linux-aarch64 = {
|
|
crossPkgs = pkgs.pkgsCross.aarch64-multiplatform;
|
|
triple = "aarch64-unknown-linux-gnu";
|
|
exeSuffix = "";
|
|
};
|
|
windows-x86_64 = {
|
|
crossPkgs = pkgs.pkgsCross.mingwW64;
|
|
triple = "x86_64-pc-windows-gnu";
|
|
exeSuffix = ".exe";
|
|
};
|
|
windows-aarch64 = {
|
|
crossPkgs = pkgs.pkgsCross.aarch64-windows;
|
|
triple = "aarch64-pc-windows-gnu";
|
|
exeSuffix = ".exe";
|
|
};
|
|
macos-x86_64 = {
|
|
crossPkgs = pkgs.pkgsCross.x86_64-darwin;
|
|
triple = "x86_64-apple-darwin";
|
|
exeSuffix = "";
|
|
};
|
|
macos-aarch64 = {
|
|
crossPkgs = pkgs.pkgsCross.aarch64-darwin;
|
|
triple = "aarch64-apple-darwin";
|
|
exeSuffix = "";
|
|
};
|
|
};
|
|
bins = {
|
|
linux-x86_64 = mkRustBuild {
|
|
inherit pkgs;
|
|
target = targets.linux-x86_64;
|
|
};
|
|
linux-aarch64 = mkRustBuild {
|
|
inherit pkgs;
|
|
target = targets.linux-aarch64;
|
|
};
|
|
windows-x86_64 = mkRustBuild {
|
|
inherit pkgs;
|
|
target = targets.windows-x86_64;
|
|
};
|
|
};
|
|
packages =
|
|
{
|
|
linux-x86_64-archive = mkArchive {
|
|
inherit pkgs;
|
|
bin = bins.linux-x86_64;
|
|
archiveName = "x86_64-linux";
|
|
};
|
|
linux-aarch64-archive = mkArchive {
|
|
inherit pkgs;
|
|
bin = bins.linux-aarch64;
|
|
archiveName = "aarch64-linux";
|
|
};
|
|
windows-x86_64-archive = mkArchive {
|
|
inherit pkgs;
|
|
bin = bins.windows-x86_64;
|
|
archiveName = "x86_64-windows";
|
|
};
|
|
}
|
|
// bins;
|
|
defaultBySystem = {
|
|
"x86_64-linux" = packages.linux-x86_64;
|
|
"aarch64-linux" = packages.linux-aarch64;
|
|
"x86_64-windows" = packages.windows-x86_64;
|
|
};
|
|
in
|
|
packages
|
|
// {
|
|
default = defaultBySystem.${system} or packages.linux-x86_64;
|
|
}
|