aboutsummaryrefslogtreecommitdiff
path: root/flake.nix
blob: e3aafb16c83f62f79de9c4e1289ebd61d86be131 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{
  description = "A very basic flake";

  inputs.nixpkgs.url = "github:NixOS/nixpkgs/a3073c49bc0163fea6a121c276f526837672b555";
  inputs.cargo2nix = {
    # As of 2022-10-18: two small patches over unstable branch, one for clippy and one to fix feature detection
    url = "github:Alexis211/cargo2nix/a7a61179b66054904ef6a195d8da736eaaa06c36";

    # Rust overlay as of 2023-04-25
    inputs.rust-overlay.url =
      "github:oxalica/rust-overlay/74f1a64dd28faeeb85ef081f32cad2989850322c";

    inputs.nixpkgs.follows = "nixpkgs";
  };

  outputs = { self, nixpkgs, cargo2nix }:
  let
    pkgs = import nixpkgs {
      system = "x86_64-linux";
      overlays = [ cargo2nix.overlays.default ];
    };
    packageFun = import ./Cargo.nix;
    rustVersion = "1.68.0";

    compile = args: compileMode:
      let
        packageSet = pkgs.rustBuilder.makePackageSet ({
          inherit packageFun rustVersion;
        } // args);
      in
        packageSet.workspace.tricot {
          inherit compileMode;
        };
  in
  {
    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;
  };
}