dev-games/cegui: EAPI 7 and cmake.eclass
[gentoo.git] / dev-games / openscenegraph / openscenegraph-3.6.4.ebuild
1 # Copyright 1999-2020 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=7
5
6 MY_PN="OpenSceneGraph"
7 MY_P=${MY_PN}-${PV}
8 WX_GTK_VER="3.0"
9 inherit cmake flag-o-matic wxwidgets
10
11 DESCRIPTION="Open source high performance 3D graphics toolkit"
12 HOMEPAGE="http://www.openscenegraph.org/"
13 SRC_URI="https://github.com/${PN}/${MY_PN}/archive/${MY_P}.tar.gz"
14
15 LICENSE="wxWinLL-3 LGPL-2.1"
16 SLOT="0/158" # NOTE: CHECK WHEN BUMPING! Subslot is SOVERSION
17 KEYWORDS="~amd64 ~hppa ~ppc ~ppc64 ~x86"
18 IUSE="asio curl dicom debug doc egl examples ffmpeg fltk fox gdal gif glut
19 gstreamer jpeg las lua openexr openinventor osgapps pdf png sdl sdl2
20 svg tiff truetype vnc wxwidgets xrandr +zlib"
21
22 REQUIRED_USE="sdl2? ( sdl ) dicom? ( zlib ) openexr? ( zlib )"
23
24 # TODO: COLLADA, FBX, GTA, NVTT, OpenVRML, Performer
25 BDEPEND="
26         app-arch/unzip
27         virtual/pkgconfig
28         doc? ( app-doc/doxygen )
29 "
30 RDEPEND="
31         media-libs/mesa[egl?]
32         virtual/glu
33         virtual/opengl
34         x11-libs/libSM
35         x11-libs/libXext
36         asio? ( dev-cpp/asio )
37         curl? ( net-misc/curl )
38         examples? (
39                 fltk? ( x11-libs/fltk:1[opengl] )
40                 fox? ( x11-libs/fox:1.6[opengl] )
41                 glut? ( media-libs/freeglut )
42                 sdl2? ( media-libs/libsdl2 )
43                 wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[opengl,X] )
44         )
45         ffmpeg? ( media-video/ffmpeg:0= )
46         gdal? ( sci-libs/gdal:= )
47         gif? ( media-libs/giflib:= )
48         gstreamer? (
49                 media-libs/gstreamer:1.0
50                 media-libs/gst-plugins-base:1.0
51         )
52         jpeg? ( virtual/jpeg:0 )
53         las? ( >=sci-geosciences/liblas-1.8.0 )
54         lua? ( >=dev-lang/lua-5.1.5:* )
55         openexr? (
56                 media-libs/ilmbase:=
57                 media-libs/openexr:=
58         )
59         openinventor? ( media-libs/coin )
60         pdf? ( app-text/poppler[cairo] )
61         png? ( media-libs/libpng:0= )
62         sdl? ( media-libs/libsdl )
63         svg? (
64                 gnome-base/librsvg
65                 x11-libs/cairo
66         )
67         tiff? ( media-libs/tiff:0 )
68         truetype? ( media-libs/freetype:2 )
69         vnc? ( net-libs/libvncserver )
70         xrandr? ( x11-libs/libXrandr )
71         zlib? ( sys-libs/zlib )
72 "
73 DEPEND="${RDEPEND}
74         x11-base/xorg-proto
75 "
76
77 S="${WORKDIR}/${MY_PN}-${MY_P}"
78
79 PATCHES=(
80         "${FILESDIR}"/${PN}-3.6.3-cmake.patch
81         "${FILESDIR}"/${PN}-3.6.3-docdir.patch
82 )
83
84 src_configure() {
85         if use examples && use wxwidgets; then
86                 need-wxwidgets unicode
87         fi
88
89         # Needed by FFmpeg
90         append-cppflags -D__STDC_CONSTANT_MACROS
91
92         local libdir=$(get_libdir)
93         local mycmakeargs=(
94                 -DDYNAMIC_OPENSCENEGRAPH=ON
95                 -DLIB_POSTFIX=${libdir/lib}
96                 -DOPENGL_PROFILE=GL2 #GL1 GL2 GL3 GLES1 GLES3 GLES3
97                 -DOSG_ENVVAR_SUPPORTED=ON
98                 -DOSG_PROVIDE_READFILE=ON
99                 -DOSG_USE_LOCAL_LUA_SOURCE=OFF
100                 $(cmake_use_find_package asio Asio)
101                 $(cmake_use_find_package curl CURL)
102                 -DBUILD_DOCUMENTATION=$(usex doc)
103                 $(cmake_use_find_package dicom DCMTK)
104                 $(cmake_use_find_package egl EGL)
105                 -DBUILD_OSG_EXAMPLES=$(usex examples)
106                 $(cmake_use_find_package ffmpeg FFmpeg)
107                 $(cmake_use_find_package gdal GDAL)
108                 $(cmake_use_find_package gif GIFLIB)
109                 $(cmake_use_find_package gstreamer GLIB)
110                 $(cmake_use_find_package gstreamer GStreamer)
111                 -DCMAKE_DISABLE_FIND_PACKAGE_GtkGl=ON
112                 $(cmake_use_find_package jpeg JPEG)
113                 -DCMAKE_DISABLE_FIND_PACKAGE_Jasper=ON
114                 $(cmake_use_find_package las LIBLAS)
115                 $(cmake_use_find_package lua Lua51)
116                 -DCMAKE_DISABLE_FIND_PACKAGE_Lua52=ON
117                 -DCMAKE_DISABLE_FIND_PACKAGE_OpenCascade=ON
118                 $(cmake_use_find_package openexr OpenEXR)
119                 $(cmake_use_find_package openinventor Inventor)
120                 -DBUILD_OSG_APPLICATIONS=$(usex osgapps)
121                 $(cmake_use_find_package pdf Poppler-glib)
122                 $(cmake_use_find_package png PNG)
123                 $(cmake_use_find_package sdl SDL)
124                 $(cmake_use_find_package sdl2 SDL2)
125                 $(cmake_use_find_package svg RSVG)
126                 $(cmake_use_find_package tiff TIFF)
127                 $(cmake_use_find_package truetype Freetype)
128                 $(cmake_use_find_package vnc LibVNCServer)
129                 -DOSGVIEWER_USE_XRANDR=$(usex xrandr)
130                 $(cmake_use_find_package zlib ZLIB)
131         )
132         if use examples; then
133                 mycmakeargs+=(
134                         $(cmake_use_find_package fltk FLTK)
135                         $(cmake_use_find_package fox FOX)
136                         $(cmake_use_find_package glut GLUT)
137                         $(cmake_use_find_package wxwidgets wxWidgets)
138                 )
139         fi
140
141         cmake_src_configure
142 }
143
144 src_compile() {
145         cmake_src_compile
146         use doc && cmake_src_compile doc_openscenegraph doc_openthreads
147 }