-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdefault.nix
135 lines (126 loc) · 3.18 KB
/
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
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
{ pkgs }:
pkgs.stdenv.mkDerivation rec {
pname = "emptyExample";
version = "0.0.1";
srcs = [
./.gn
./BUILD.gn
./BUILDCONFIG.gn
./toolchain
./addons
./src
./openFrameworks
];
phases = [ "unpackPhase" "configurePhase" "buildPhase" ];
unpackPhase = ''
for src in $srcs; do
cp -r "$src" $(stripHash "$src")
done
'';
configurePhase = ''
gn gen out
'';
buildPhase = ''
ninja --verbose -C out ${pname}
mkdir -p $out/bin/
cp -r ./out/${pname} $out/bin/
'';
nativeBuildInputs = with pkgs; [
# Build system dependencies
gn
ninja
];
propagatedBuildInputs = with pkgs; [
# openFrameworks dependencies
cairo
curl
freeimage
freetype
glew
glfw3
glm
nlohmann_json
pugixml
rtaudio
tess2
uriparser
utf8cpp
]
++ lib.optionals stdenv.isLinux ([
fontconfig
glib
gst_all_1.gst-plugins-base
gst_all_1.gstreamer
kissfft
libsndfile
openal
systemd
xorg.libX11
xorg.libXrandr
])
++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
AVFoundation
AppKit
Cocoa
CoreFoundation
CoreMedia
CoreServices
CoreText
OpenGL
]);
CFLAGS = with pkgs; [
"-I${lib.getDev cairo}/include/cairo"
"-I${lib.getDev curl}/include"
"-I${lib.getDev freeimage}/include"
"-I${lib.getDev freetype}/include"
"-I${lib.getDev glew}/include"
"-I${lib.getDev glfw3}/include"
"-I${lib.getDev glm}/include"
"-I${lib.getDev nlohmann_json}/include"
"-I${lib.getDev pugixml}/include"
"-I${lib.getDev tess2}/include"
"-I${lib.getDev uriparser}/include"
# non-standard include paths:
"-I${lib.getDev nlohmann_json}/include/nlohmann"
"-I${lib.getDev rtaudio}/include/rtaudio"
"-I${lib.getDev utf8cpp}/include/utf8cpp"
]
++ lib.optionals stdenv.isLinux ([
"-I${glib.out}/lib/glib-2.0/include"
"-I${lib.getDev fontconfig}/include"
"-I${lib.getDev libsndfile}/include"
"-I${lib.getDev openal}/include"
"-I${lib.getDev systemd}/include"
"-I${lib.getDev xorg.libX11}/include"
"-I${lib.getDev xorg.libXrandr}/include"
# non-standard include paths:
"-I${lib.getDev glib}/include/glib-2.0"
"-I${lib.getDev gst_all_1.gst-plugins-base}/include/gstreamer-1.0"
"-I${gst_all_1.gst-plugins-base}/lib/gstreamer-1.0/include"
"-I${lib.getDev gst_all_1.gstreamer}/include/gstreamer-1.0"
"-I${lib.getDev kissfft}/include/kissfft"
]);
LDFLAGS = with pkgs; [
"-L${lib.getLib cairo}/lib"
"-L${lib.getLib curl}/lib"
"-L${lib.getLib freeimage}/lib"
"-L${lib.getLib freetype}/lib"
"-L${lib.getLib glew}/lib"
"-L${lib.getLib glfw3}/lib"
"-L${lib.getLib glm}/lib"
"-L${lib.getLib nlohmann_json}/lib"
"-L${lib.getLib pugixml}/lib"
"-L${lib.getLib rtaudio}/lib"
"-L${lib.getLib tess2}/lib"
"-L${lib.getLib uriparser}/lib"
"-L${lib.getLib utf8cpp}/lib"
]
++ lib.optionals stdenv.isLinux ([
"-L${lib.getLib fontconfig}/lib"
"-L${lib.getLib glib}/lib"
"-L${lib.getLib gst_all_1.gstreamer}/lib"
"-L${lib.getLib libsndfile}/lib"
"-L${lib.getLib openal}/lib"
"-L${lib.getLib systemd}/lib"
]);
}