Skip to content

Commit

Permalink
dev-games/openscenegraph: add collada support
Browse files Browse the repository at this point in the history
Also apply egl patch from gentoo#21742

Bug: https://bugs.gentoo.org/797403
Package-Manager: Portage-3.0.20, Repoman-3.0.2
Signed-off-by: Alexey Sokolov <[email protected]>
Signed-off-by: Ionen Wolkens <[email protected]>
  • Loading branch information
DarthGandalf authored and ionenwks committed Jul 31, 2021
1 parent 8310cc0 commit a7f816e
Show file tree
Hide file tree
Showing 2 changed files with 168 additions and 0 deletions.
1 change: 1 addition & 0 deletions dev-games/openscenegraph/metadata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
The OpenSceneGraph is an open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, virtual reality, scientific visualization and modelling. Written entirely in Standard C++ and OpenGL it runs on all Windows platforms, OSX, GNU/Linux, IRIX, Solaris, HP-Ux, AIX and FreeBSD operating systems. The OpenSceneGraph is now well established as the world leading scene graph technology, used widely in the vis-sim, space, scientific, oil-gas, games and virtual reality industries.
</longdescription>
<use>
<flag name="collada">Enable DAE file support via <pkg>dev-libs/collada-dom</pkg></flag>
<flag name="dicom">Enable DICOM medical image file support via <pkg>sci-libs/dcmtk</pkg></flag>
<flag name="egl">Enable EGL support</flag>
<flag name="fox">Build examples using <pkg>x11-libs/fox</pkg> library</flag>
Expand Down
167 changes: 167 additions & 0 deletions dev-games/openscenegraph/openscenegraph-3.6.5-r110.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

LUA_COMPAT=( lua5-1 )

WX_GTK_VER="3.0-gtk3"
inherit cmake flag-o-matic lua-single wxwidgets

MY_PN="OpenSceneGraph"
MY_P=${MY_PN}-${PV}

DESCRIPTION="Open source high performance 3D graphics toolkit"
HOMEPAGE="http://www.openscenegraph.org/"
SRC_URI="https://github.com/${PN}/${MY_PN}/archive/${MY_P}.tar.gz"
S="${WORKDIR}/${MY_PN}-${MY_P}"

LICENSE="wxWinLL-3 LGPL-2.1"
SLOT="0/161" # NOTE: CHECK WHEN BUMPING! Subslot is SOVERSION
KEYWORDS="~amd64 ~hppa ~ppc ~ppc64 ~x86"
IUSE="
collada curl dicom debug doc egl examples ffmpeg fltk fox gdal
gif glut gstreamer jpeg las lua openexr openinventor osgapps pdf png
sdl sdl2 svg tiff truetype vnc wxwidgets xrandr +zlib
"

REQUIRED_USE="
dicom? ( zlib )
lua? ( ${LUA_REQUIRED_USE} )
openexr? ( zlib )
sdl2? ( sdl )
"

# TODO: FBX, GTA, NVTT, OpenVRML, Performer
BDEPEND="
app-arch/unzip
virtual/pkgconfig
doc? ( app-doc/doxygen )
"
RDEPEND="
media-libs/mesa[egl(+)?]
virtual/glu
virtual/opengl
x11-libs/libSM
x11-libs/libXext
collada? ( dev-libs/collada-dom:= )
curl? ( net-misc/curl )
examples? (
fltk? ( x11-libs/fltk:1[opengl] )
fox? ( x11-libs/fox:1.6[opengl] )
glut? ( media-libs/freeglut )
sdl2? ( media-libs/libsdl2 )
wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[opengl,X] )
)
ffmpeg? ( media-video/ffmpeg:0= )
gdal? ( sci-libs/gdal:= )
gif? ( media-libs/giflib:= )
gstreamer? (
media-libs/gstreamer:1.0
media-libs/gst-plugins-base:1.0
)
jpeg? ( virtual/jpeg:0 )
las? ( >=sci-geosciences/liblas-1.8.0 )
lua? ( ${LUA_DEPS} )
openexr? (
media-libs/ilmbase:=
media-libs/openexr:=
)
openinventor? ( media-libs/coin )
pdf? ( app-text/poppler[cairo] )
png? ( media-libs/libpng:0= )
sdl? ( media-libs/libsdl )
svg? (
gnome-base/librsvg
x11-libs/cairo
)
tiff? ( media-libs/tiff:0 )
truetype? ( media-libs/freetype:2 )
vnc? ( net-libs/libvncserver )
xrandr? ( x11-libs/libXrandr )
zlib? ( sys-libs/zlib )
"
DEPEND="${RDEPEND}
dev-libs/boost
x11-base/xorg-proto
"

PATCHES=(
"${FILESDIR}"/${PN}-3.6.3-cmake.patch
"${FILESDIR}"/${PN}-3.6.3-docdir.patch
"${FILESDIR}"/${PN}-3.6.5-use_boost_asio.patch
"${FILESDIR}"/${PN}-3.6.5-cmake_lua_version.patch
)

pkg_setup() {
use lua && lua-single_pkg_setup
}

src_configure() {
if use examples && use wxwidgets; then
setup-wxwidgets unicode
fi

# Needed by FFmpeg
append-cppflags -D__STDC_CONSTANT_MACROS

local libdir=$(get_libdir)
local mycmakeargs=(
-DDYNAMIC_OPENSCENEGRAPH=ON
-DLIB_POSTFIX=${libdir/lib}
-DOPENGL_PROFILE=GL2 #GL1 GL2 GL3 GLES1 GLES3 GLES3
$(cmake_use_find_package collada COLLADA)
$(cmake_use_find_package curl CURL)
-DBUILD_DOCUMENTATION=$(usex doc)
$(cmake_use_find_package dicom DCMTK)
$(cmake_use_find_package egl EGL)
-DBUILD_OSG_EXAMPLES=$(usex examples)
$(cmake_use_find_package ffmpeg FFmpeg)
$(cmake_use_find_package gdal GDAL)
$(cmake_use_find_package gif GIFLIB)
$(cmake_use_find_package gstreamer GLIB)
$(cmake_use_find_package gstreamer GStreamer)
-DCMAKE_DISABLE_FIND_PACKAGE_GtkGl=ON
$(cmake_use_find_package jpeg JPEG)
-DCMAKE_DISABLE_FIND_PACKAGE_Jasper=ON
$(cmake_use_find_package las LIBLAS)
$(cmake_use_find_package lua Lua)
-DCMAKE_DISABLE_FIND_PACKAGE_OpenCascade=ON
$(cmake_use_find_package openexr OpenEXR)
$(cmake_use_find_package openinventor Inventor)
-DBUILD_OSG_APPLICATIONS=$(usex osgapps)
$(cmake_use_find_package pdf Poppler-glib)
$(cmake_use_find_package png PNG)
$(cmake_use_find_package sdl SDL)
$(cmake_use_find_package sdl2 SDL2)
$(cmake_use_find_package svg RSVG)
$(cmake_use_find_package tiff TIFF)
$(cmake_use_find_package truetype Freetype)
$(cmake_use_find_package vnc LibVNCServer)
-DOSGVIEWER_USE_XRANDR=$(usex xrandr)
$(cmake_use_find_package zlib ZLIB)
-DOSG_USE_LOCAL_LUA_SOURCE=OFF
)

if use examples; then
mycmakeargs+=(
$(cmake_use_find_package fltk FLTK)
$(cmake_use_find_package fox FOX)
$(cmake_use_find_package glut GLUT)
$(cmake_use_find_package wxwidgets wxWidgets)
)
fi

if use lua; then
mycmakeargs+=(
-DLUA_VERSION="$(lua_get_version)"
)
fi

cmake_src_configure
}

src_compile() {
cmake_src_compile
use doc && cmake_src_compile doc_openscenegraph doc_openthreads
}

0 comments on commit a7f816e

Please sign in to comment.