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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
{
stdenv,
lib,
fetchFromGitHub,
fetchpatch,
fetchurl,
cmake,
pkg-config,
doxygen,
libX11,
libXinerama,
libXrandr,
libGLU,
libGL,
glib,
libxml2,
pcre,
zlib,
AGL,
Accelerate,
Carbon,
Cocoa,
Foundation,
boost,
jpegSupport ? true,
libjpeg,
exrSupport ? false,
openexr,
gifSupport ? true,
giflib,
pngSupport ? true,
libpng,
tiffSupport ? true,
libtiff,
gdalSupport ? false,
gdal,
curlSupport ? true,
curl,
colladaSupport ? false,
opencollada,
opencascadeSupport ? false,
opencascade-occt,
ffmpegSupport ? false,
ffmpeg,
nvttSupport ? false,
nvidia-texture-tools,
freetypeSupport ? true,
freetype,
svgSupport ? false,
librsvg,
pdfSupport ? false,
poppler,
vncSupport ? false,
libvncserver,
lasSupport ? false,
libLAS,
luaSupport ? false,
lua,
sdlSupport ? false,
SDL2,
restSupport ? false,
asio,
withApps ? false,
withExamples ? false,
fltk,
}:
stdenv.mkDerivation rec {
pname = "openscenegraph";
version = "3.6.5";
src = fetchFromGitHub {
owner = "openscenegraph";
repo = "OpenSceneGraph";
rev = "OpenSceneGraph-${version}";
sha256 = "00i14h82qg3xzcyd8p02wrarnmby3aiwmz0z43l50byc9f8i05n1";
};
nativeBuildInputs = [
pkg-config
cmake
doxygen
];
buildInputs =
lib.optionals (!stdenv.hostPlatform.isDarwin) [
libX11
libXinerama
libXrandr
libGLU
libGL
]
++ [
glib
libxml2
pcre
zlib
]
++ lib.optional jpegSupport libjpeg
++ lib.optional exrSupport openexr
++ lib.optional gifSupport giflib
++ lib.optional pngSupport libpng
++ lib.optional tiffSupport libtiff
++ lib.optional gdalSupport gdal
++ lib.optional curlSupport curl
++ lib.optional colladaSupport opencollada
++ lib.optional opencascadeSupport opencascade-occt
++ lib.optional ffmpegSupport ffmpeg
++ lib.optional nvttSupport nvidia-texture-tools
++ lib.optional freetypeSupport freetype
++ lib.optional svgSupport librsvg
++ lib.optional pdfSupport poppler
++ lib.optional vncSupport libvncserver
++ lib.optional lasSupport libLAS
++ lib.optional luaSupport lua
++ lib.optional sdlSupport SDL2
++ lib.optional restSupport asio
++ lib.optionals withExamples [ fltk ]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ ]
++ lib.optionals stdenv.hostPlatform.isDarwin [
AGL
Accelerate
Carbon
Cocoa
Foundation
]
++ lib.optional (restSupport || colladaSupport) boost;
patches = [
(fetchpatch {
name = "opencascade-api-patch";
url = "https://github.com/openscenegraph/OpenSceneGraph/commit/bc2daf9b3239c42d7e51ecd7947d31a92a7dc82b.patch";
hash = "sha256-VR8YKOV/YihB5eEGZOGaIfJNrig1EPS/PJmpKsK284c=";
})
# OpenEXR 3 support: https://github.com/openscenegraph/OpenSceneGraph/issues/1075
(fetchurl {
url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-games/openscenegraph/files/openscenegraph-3.6.5-openexr3.patch?id=0f642d8f09b589166f0e0c0fc84df7673990bf3f";
hash = "sha256-fdNbkg6Vp7DeDBTe5Zso8qJ5v9uPSXHpQ5XlGkvputk=";
})
# Fix compiling with libtiff when libtiff is compiled using CMake
(fetchurl {
url = "https://github.com/openscenegraph/OpenSceneGraph/commit/9da8d428f6666427c167b951b03edd21708e1f43.patch";
hash = "sha256-YGG/DIHU1f6StbeerZoZrNDm348wYB3ydmVIIGTM7fU=";
})
];
cmakeFlags =
lib.optional (!withApps) "-DBUILD_OSG_APPLICATIONS=OFF"
++ lib.optional withExamples "-DBUILD_OSG_EXAMPLES=ON";
meta = with lib; {
description = "3D graphics toolkit";
homepage = "http://www.openscenegraph.org/";
maintainers = with maintainers; [
aanderse
raskin
];
platforms = with platforms; linux ++ darwin;
license = "OpenSceneGraph Public License - free LGPL-based license";
};
}
|