1{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig, doxygen,
2 libX11, libXinerama, libXrandr, libGLU, libGL,
3 glib, ilmbase, libxml2, pcre, zlib,
4 jpegSupport ? true, libjpeg,
5 jasperSupport ? false, jasper, # disable jasper by default (many CVE)
6 exrSupport ? false, openexr,
7 gifSupport ? true, giflib,
8 pngSupport ? true, libpng,
9 tiffSupport ? true, libtiff,
10 gdalSupport ? false, gdal,
11 curlSupport ? true, curl,
12 colladaSupport ? false, opencollada,
13 opencascadeSupport ? false, opencascade,
14 ffmpegSupport ? false, ffmpeg,
15 nvttSupport ? false, nvidia-texture-tools,
16 freetypeSupport ? true, freetype,
17 svgSupport ? false, librsvg,
18 pdfSupport ? false, poppler,
19 vncSupport ? false, libvncserver,
20 lasSupport ? false, libLAS,
21 luaSupport ? false, lua,
22 sdlSupport ? false, SDL2,
23 restSupport ? false, asio, boost,
24 withApps ? false,
25 withExamples ? false, fltk, wxGTK,
26}:
27
28stdenv.mkDerivation rec {
29 pname = "openscenegraph";
30 version = "3.6.4";
31
32 src = fetchFromGitHub {
33 owner = "openscenegraph";
34 repo = "OpenSceneGraph";
35 rev = "OpenSceneGraph-${version}";
36 sha256 = "0x8hdbzw0b71j91fzp9cwmy9a7ava8v8wwyj8nxijq942vdx1785";
37 };
38
39 nativeBuildInputs = [ pkgconfig cmake doxygen ];
40
41 buildInputs = [
42 libX11 libXinerama libXrandr libGLU libGL
43 glib ilmbase libxml2 pcre zlib
44 ] ++ lib.optional jpegSupport libjpeg
45 ++ lib.optional jasperSupport jasper
46 ++ lib.optional exrSupport openexr
47 ++ lib.optional gifSupport giflib
48 ++ lib.optional pngSupport libpng
49 ++ lib.optional tiffSupport libtiff
50 ++ lib.optional gdalSupport gdal
51 ++ lib.optional curlSupport curl
52 ++ lib.optional colladaSupport opencollada
53 ++ lib.optional opencascadeSupport opencascade
54 ++ lib.optional ffmpegSupport ffmpeg
55 ++ lib.optional nvttSupport nvidia-texture-tools
56 ++ lib.optional freetypeSupport freetype
57 ++ lib.optional svgSupport librsvg
58 ++ lib.optional pdfSupport poppler
59 ++ lib.optional vncSupport libvncserver
60 ++ lib.optional lasSupport libLAS
61 ++ lib.optional luaSupport lua
62 ++ lib.optional sdlSupport SDL2
63 ++ lib.optionals restSupport [ asio boost ]
64 ++ lib.optionals withExamples [ fltk wxGTK ]
65 ;
66
67 cmakeFlags = lib.optional (!withApps) "-DBUILD_OSG_APPLICATIONS=OFF" ++ lib.optional withExamples "-DBUILD_OSG_EXAMPLES=ON";
68
69 meta = with stdenv.lib; {
70 description = "A 3D graphics toolkit";
71 homepage = http://www.openscenegraph.org/;
72 maintainers = with maintainers; [ aanderse raskin ];
73 platforms = platforms.linux;
74 license = "OpenSceneGraph Public License - free LGPL-based license";
75 };
76}