depot/third_party/nixpkgs/pkgs/development/libraries/openscenegraph/default.nix

156 lines
3.6 KiB
Nix

{
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_3,
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_3
++ 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=";
})
];
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";
};
}