-
Notifications
You must be signed in to change notification settings - Fork 0
/
default.nix
62 lines (50 loc) · 1016 Bytes
/
default.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
{
pkgs ? import <nixpkgs> {}
, stdenv ? pkgs.stdenv
, debug ? true
, aeron-cpp ? pkgs.aeron-cpp
}:
let
name = "aeron-capnp";
add-links = ''
ln --symbolic --force --target-directory=src \
"${pkgs.ekam.src}/src/ekam/rules"
'';
in
stdenv.mkDerivation {
inherit name;
src = ./.;
buildInputs = with pkgs; [
aeron-cpp
capnproto
openssl
zlib
];
nativeBuildInputs = with pkgs; [
clang-tools
ekam
gtest
which
];
propagatedBuildInputs = with pkgs; [
];
CAPNPC_FLAGS = with pkgs; [
"-I${capnproto}/include"
];
shellHook = add-links;
buildPhase = ''
${add-links}
make ${if debug then "debug" else "release"}
'';
installPhase = ''
install --verbose -D --mode=644 \
--target-directory="''${!outputLib}/lib" \
lib${name}.a
install --verbose -D --mode=644 \
--target-directory="''${!outputInclude}/include/${name}" \
src/*.capnp \
src/*.capnp.h \
tmp/*.capnp.h \
src/*.h
'';
}