-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathflake.nix
108 lines (90 loc) · 2.98 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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
## See NIX.md for help getting started with Nix
{
description = "Software to simulate heat transfer for additive manufacturing";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
utils.url = "github:numtide/flake-utils";
};
outputs = inputs @ { self, utils, ... }: utils.lib.eachDefaultSystem (system: rec {
config = rec {
pkgs = import inputs.nixpkgs {
inherit system;
inherit (import ./nix/nixpkgs/config.nix {}) overlays config;
};
};
lib = with config; {
callPackage = set: pkgs.lib.callPackageWith (pkgs // set);
};
derivations = with config; rec {
callPackage = lib.callPackage libs;
libs = {
adiak = callPackage ./nix/dependencies/adiak {};
caliper = callPackage ./nix/dependencies/caliper {};
arborx = callPackage ./nix/dependencies/arborx {};
dealii = let
versions = rec {
latest = v962;
v962 = callPackage ./nix/dependencies/dealii/v9.6.2.nix { inherit callPackage; };
v952 = callPackage ./nix/dependencies/dealii/v9.5.2.nix { inherit callPackage; };
};
in (versions.latest) // {
inherit versions;
};
};
adamantine = let
versions = rec {
devel = callPackage ./nix/adamantine/common.nix {
version = self.shortRev or self.dirtyShortRev;
src = self;
};
stable = v100;
v100 = callPackage ./nix/adamantine/v1.0.0.nix {
inherit callPackage;
dealii = libs.dealii.versions.v952;
};
};
in (versions.devel) // {
inherit versions;
};
};
packages = rec {
default = adamantine.versions.devel;
inherit (derivations) adamantine;
};
devShells = with config; rec {
default = adamantineDev;
adamantineDev = pkgs.mkShell rec {
name = "adamantine-dev";
packages = with pkgs; [
git
clang-tools
ninja
] ++ pkgs.lib.optionals (pkgs.stdenv.hostPlatform.isLinux) [
gdb
cntr
] ++ self.outputs.packages.${system}.default.buildInputs
++ self.outputs.packages.${system}.default.nativeBuildInputs
++ self.outputs.packages.${system}.default.propagatedBuildInputs;
# For dev, we want to disable hardening.
hardeningDisable = [
"bindnow"
"format"
"fortify"
"fortify3"
"pic"
"relro"
"stackprotector"
"strictoverflow"
];
# Ensure the locales point at the correct archive location.
LOCALE_ARCHIVE = pkgs.lib.optional (pkgs.stdenv.hostPlatform.isLinux) (
"${pkgs.glibcLocales}/lib/locale/locale-archive"
);
};
};
});
nixConfig = {
extra-substituters = [ "https://mdfbaam.cachix.org" ];
extra-trusted-public-keys = [ "mdfbaam.cachix.org-1:WCQinXaMJP7Ny4sMlKdisNUyhcO2MHnPoobUef5aTmQ=" ];
};
}