tricot/flake.nix

50 lines
1.4 KiB
Nix
Raw Normal View History

2022-12-01 14:41:23 +00:00
{
description = "Tricot, a reverse proxy with consul integration";
2022-12-01 14:41:23 +00:00
# Nixpkgs 23.11 as of 2024-02-07, has rustc v1.73
inputs.nixpkgs.url =
"github:NixOS/nixpkgs/9f2ee8c91ac42da3ae6c6a1d21555f283458247e";
2022-12-01 14:41:23 +00:00
inputs.cargo2nix = {
# cargo2nix as of 2024-04-25
url = "github:cargo2nix/cargo2nix/1efb03f2f794ad5eed17e807e858c4da001dbc3e";
2023-10-02 11:28:40 +00:00
# Rust overlay as of 2024-02-07
2023-10-02 11:28:40 +00:00
inputs.rust-overlay.url =
"github:oxalica/rust-overlay/7a94fe7690d2bdfe1aab475382a505e14dc114a6";
2023-10-02 11:28:40 +00:00
2022-12-01 14:41:23 +00:00
inputs.nixpkgs.follows = "nixpkgs";
};
outputs = { self, nixpkgs, cargo2nix }:
let
targetHost = "x86_64-unknown-linux-musl";
2022-12-01 14:41:23 +00:00
pkgs = import nixpkgs {
system = "x86_64-linux";
crossSystem = {
config = targetHost;
isStatic = true;
};
2022-12-01 14:41:23 +00:00
overlays = [ cargo2nix.overlays.default ];
};
packageFun = import ./Cargo.nix;
2023-10-02 11:28:40 +00:00
rustVersion = "1.68.0";
2022-12-01 16:05:32 +00:00
compile = args: compileMode:
let
packageSet = pkgs.rustBuilder.makePackageSet ({
inherit packageFun rustVersion;
target = targetHost;
2022-12-01 16:05:32 +00:00
} // args);
in
packageSet.workspace.tricot {
inherit compileMode;
};
2022-12-01 14:41:23 +00:00
in
{
2022-12-01 16:05:32 +00:00
test.x86_64-linux.tricot = compile { release = false; } "test";
debug.x86_64-linux.tricot = compile { release = false; } "build";
packages.x86_64-linux.tricot = compile { release = true; } "build";
packages.x86_64-linux.default = self.packages.x86_64-linux.tricot;
2022-12-01 14:41:23 +00:00
};
}