-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathflake.nix
77 lines (75 loc) · 2.26 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
{
description = "A very basic flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/23.05";
qornflakes.url = "github:guilloteauq/qornflakes";
qornflakes.inputs."nixpkgs".follows = "nixpkgs";
};
outputs = { self, nixpkgs, qornflakes }:
let
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; };
qorn = qornflakes.packages.${system};
myR = pkgs.rWrapper.override {
packages = [ pkgs.rPackages.tidyverse qorn.pajengr ];
};
in {
packages.${system} = rec {
notes = pkgs.writeShellApplication {
name = "notes";
runtimeInputs = [ pkgs.emacs ];
text = ''
emacs -q -l ./.init.el notes.org &
'';
};
replayer = pkgs.stdenv.mkDerivation {
name = "replayer";
src = ./replayer_src;
buildInputs = [ simgrid ];
buildPhase = ''
smpicxx -o replayer replay.cpp -std=c++17
'';
installPhase = ''
mkdir -p $out/bin
cp replayer $out/bin
'';
};
simgrid = pkgs.simgrid.overrideAttrs
(finalAttrs: previousAttrs: { patches = [ ./test.patch ]; });
ior-simgrid = pkgs.ior.overrideAttrs (finalAttrs: previousAttrs: {
pname = "ior-simgrid";
propagatedBuildInputs = [ simgrid ];
configurePhase = ''
./bootstrap && SMPI_PRETEND_CC=1 ./configure --prefix=$out MPICC=${simgrid}/bin/smpicc CC=${simgrid}/bin/smpicc
'';
});
};
devShells.${system} = {
rshell = pkgs.mkShell {
packages = [
# qorn.ior-simgrid
myR
];
};
expe = pkgs.mkShell {
packages = [
self.packages.${system}.ior-simgrid
self.packages.${system}.replayer
];
shellHook = ''
ln -sf ${self.packages.${system}.ior-simgrid}/bin/ior ior.bin
ln -sf ${self.packages.${system}.replayer}/bin/replayer replay.bin
'';
};
dev = pkgs.mkShell {
packages = [
# pkgs.simgrid
self.packages.${system}.simgrid
pkgs.gnumake
pkgs.gnat
pkgs.pkg-config
];
};
};
};
}