1{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig, doxygen,
2 libX11, libXinerama, libXrandr, libGLU_combined,
3 glib, ilmbase, libxml2, pcre, zlib,
4 jpegSupport ? true, libjpeg,
5 jasperSupport ? true, jasper,
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 name = "openscenegraph-${version}";
30 version = "3.6.3";
31
32 src = fetchFromGitHub {
33 owner = "openscenegraph";
34 repo = "OpenSceneGraph";
35 rev = "d011ca4e8d83549a3688bf6bb8cd468dd9684822";
36 sha256 = "0h32z15sa8sbq276j0iib0n707m8bs4p5ji9z2ah411446paad9q";
37 };
38
39 nativeBuildInputs = [ pkgconfig cmake doxygen ];
40
41 buildInputs = [
42 libX11 libXinerama libXrandr libGLU_combined
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 enableParallelBuilding = true;
68
69 cmakeFlags = lib.optional (!withApps) "-DBUILD_OSG_APPLICATIONS=OFF" ++ lib.optional withExamples "-DBUILD_OSG_EXAMPLES=ON";
70
71 meta = with stdenv.lib; {
72 description = "A 3D graphics toolkit";
73 homepage = http://www.openscenegraph.org/;
74 maintainers = [ maintainers.raskin ];
75 platforms = platforms.linux;
76 license = "OpenSceneGraph Public License - free LGPL-based license";
77 };
78}