-
Notifications
You must be signed in to change notification settings - Fork 9
/
flake.nix
38 lines (36 loc) · 1.34 KB
/
flake.nix
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
{
description = "Functional programming in C++";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
};
outputs = inputs@{ flake-parts, ... }:
flake-parts.lib.mkFlake { inherit inputs; } {
systems = [
"x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin"
];
perSystem = { config, self', inputs', pkgs, system, ... }: {
packages = {
default = pkgs.callPackage ./nix/package.nix { stdenv = pkgs.gcc13Stdenv; };
clang = pkgs.callPackage ./nix/package.nix { stdenv = pkgs.llvmPackages_18.libcxxStdenv; };
gcc = pkgs.callPackage ./nix/package.nix { stdenv = pkgs.gcc13Stdenv; };
}
// pkgs.lib.optionalAttrs (system != "x86_64-linux") {
crossIntel = pkgs.pkgsCross.gnu64.callPackage ./nix/package.nix {
enableTests = false;
};
} // pkgs.lib.optionalAttrs (system != "aarch64-linux") {
crossAarch64 = pkgs.pkgsCross.aarch64-multiplatform.callPackage ./nix/package.nix {
enableTests = false;
};
};
checks = config.packages // {
clang = config.packages.default.override {
stdenv = pkgs.llvmPackages_18.stdenv;
};
gcc = config.packages.default.override {
stdenv = pkgs.gcc13Stdenv;
};
};
};
};
}