diff options
author | Sven Eden <yamakuzure@gmx.net> | 2018-08-06 08:11:24 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2018-09-07 13:22:49 +0200 |
commit | 758ad2b0cd811e2340786b0eb12346872ee2cc4c (patch) | |
tree | 3df6c6df7f4f693a0576f0432804f82a642cbb81 /dev-games/ogre | |
parent | www-client/vivaldi-snapshot: Old. (diff) | |
download | gentoo-758ad2b0cd811e2340786b0eb12346872ee2cc4c.tar.gz gentoo-758ad2b0cd811e2340786b0eb12346872ee2cc4c.tar.bz2 gentoo-758ad2b0cd811e2340786b0eb12346872ee2cc4c.zip |
dev-games/ogre: 1.10.12 version bump
The latest stable release of the Ogre-1.10.x series comes with a largely
overhauled ebuild regarding its USE flags and the Ogre configuration.
* Either USE flag gles2, opengl or both must be selected now.
* Removed gles3 and gl3pus USE flugs, as they are implied now.
* USE flag "egl" added to select egl over glx.
* Users can now select whether Ogre shall include support for a GL
state cache or not.
* The behavior of the Ogre resource manager can now be selected.
* Added a patch to unbundle TinyXML again. Upstream removed that possibility.
Bug: https://bugs.gentoo.org/647266
Package-Manager: Portage-2.3.48, Repoman-2.3.10
Diffstat (limited to 'dev-games/ogre')
-rw-r--r-- | dev-games/ogre/Manifest | 1 | ||||
-rw-r--r-- | dev-games/ogre/files/ogre-1.10.12-use_system_tinyxml.patch | 42 | ||||
-rw-r--r-- | dev-games/ogre/metadata.xml | 34 | ||||
-rw-r--r-- | dev-games/ogre/ogre-1.10.12.ebuild | 124 |
4 files changed, 192 insertions, 9 deletions
diff --git a/dev-games/ogre/Manifest b/dev-games/ogre/Manifest index 1ecfcfeea794..fa7ffd7cf965 100644 --- a/dev-games/ogre/Manifest +++ b/dev-games/ogre/Manifest @@ -1,2 +1,3 @@ DIST ogre-1.10.11.zip 133064317 BLAKE2B 88c64061377d8257853378219fb5906919d251f5b3c500f70bc1c04bc36e3083dc3dac4babb14d983c8b6fbb63ea3eecf698e3a0134f963db058055edd5dc4c4 SHA512 db207aec8330ec9da2a9781c8753411e69e08008995b8b3e127d454dc05aa899c75157718398ca24998644c586e2dd30cc7e9b7d98e045e4575537f5c81a5a54 +DIST ogre-1.10.12.zip 133067192 BLAKE2B 188437153969504b169970d14c39d47c9e666308bf65412018f42ba8ad108876f164733fe2004ea31941ab5db534766c10b871b34ef525522d1120b175530b87 SHA512 63998ea4940d04adfc179a94aa91bb2598692307b429f4c7e5b86a1519c13817035de4c71afc9e4b33fde35e962504373d152de9b9cc8eebbbeb78b2c1942041 DIST ogre-1.9.0.tar.bz2 128098305 BLAKE2B 6e67a5b60a6606a910e099f1c7ba736eb525f079f3aba5cfb362329b9130059d303fc9df6f7b8611c0ba75e1e207fa018e543e93c9f5ce39a6621e4c72ed4a83 SHA512 b1ea93d80ac0978a7c228460a6714f8d17797450efd5af6765c9fa4402e9060a8ef3a700d2757593a3016fdc32276722c8f4a5d9889a3e2eb424f16162a52bde diff --git a/dev-games/ogre/files/ogre-1.10.12-use_system_tinyxml.patch b/dev-games/ogre/files/ogre-1.10.12-use_system_tinyxml.patch new file mode 100644 index 000000000000..ef15931940da --- /dev/null +++ b/dev-games/ogre/files/ogre-1.10.12-use_system_tinyxml.patch @@ -0,0 +1,42 @@ +--- a/CMake/Dependencies.cmake 2018-09-04 07:50:49.091120793 +0200 ++++ b/CMake/Dependencies.cmake 2018-09-04 07:51:55.429118519 +0200 +@@ -383,6 +383,10 @@ + find_package(Softimage) + macro_log_feature(Softimage_FOUND "Softimage" "Softimage SDK needed for building XSIExporter" FALSE "6.0" "") + ++# Find TinyXML ++find_package(TinyXML) ++macro_log_feature(TINYXML_FOUND "TinyXML" "TinyXML needed for building OgreXMLConverter" FALSE "" "") ++ + ####################################################################### + # Tests + ####################################################################### +--- /dev/null 2018-09-03 08:18:52.571907158 +0200 ++++ b/CMake/Packages/FindTinyXML.cmake 2018-09-04 19:15:06.392129319 +0200 +@@ -0,0 +1,26 @@ ++# - Find TinyXML ++# Find the native TinyXML includes and library ++# ++# TINYXML_FOUND - True if TinyXML found. ++# TINYXML_INCLUDE_DIR - where to find tinyxml.h, etc. ++# TINYXML_LIBRARIES - List of libraries when using TinyXML. ++# ++ ++IF( TINYXML_INCLUDE_DIR ) ++ # Already in cache, be silent ++ SET( TinyXML_FIND_QUIETLY TRUE ) ++ENDIF( TINYXML_INCLUDE_DIR ) ++ ++FIND_PATH( TINYXML_INCLUDE_DIR "tinyxml.h" ++ PATH_SUFFIXES "tinyxml" ) ++ ++FIND_LIBRARY( TINYXML_LIBRARIES ++ NAMES "tinyxml" ++ PATH_SUFFIXES "tinyxml" ) ++ ++# handle the QUIETLY and REQUIRED arguments and set TINYXML_FOUND to TRUE if ++# all listed variables are TRUE ++INCLUDE( "FindPackageHandleStandardArgs" ) ++FIND_PACKAGE_HANDLE_STANDARD_ARGS( "TinyXML" DEFAULT_MSG TINYXML_INCLUDE_DIR TINYXML_LIBRARIES ) ++ ++MARK_AS_ADVANCED( TINYXML_INCLUDE_DIR TINYXML_LIBRARIES ) diff --git a/dev-games/ogre/metadata.xml b/dev-games/ogre/metadata.xml index 42d8eb1e79bb..9e726e9a8d33 100644 --- a/dev-games/ogre/metadata.xml +++ b/dev-games/ogre/metadata.xml @@ -77,18 +77,34 @@ Exporters * Maya (meshes) </longdescription> <use> - <flag name="boost">enable boost support</flag> + <flag name="boost">Enable boost support</flag> + <flag name="cache">Enable GL state cache support</flag> <flag name="cg">NVIDIA toolkit plugin</flag> - <flag name="double-precision">more precise calculations at the expense of speed</flag> - <flag name="freeimage">support images via freeimage</flag> + <flag name="double-precision">More precise calculations at the expense of speed</flag> + <flag name="egl">Use egl instead of glx</flag> + <flag name="experimental">Build experimental BETA components 'Bites' and 'HLMS'</flag> + <flag name="freeimage">Support images via media-libs/freeimage</flag> <flag name="gl3plus">Build OpenGL 3+ RenderSystem (EXPERIMENTAL)</flag> - <flag name="gles2">build OpenGL ES 2.x RenderSystem</flag> + <flag name="gles2" restrict=">dev-games/ogre-1.10"> + Build OpenGL ES 2.x RenderSystem plus ES 3.x features if available. + </flag> + <flag name="gles2">Build OpenGL ES 2.x RenderSystem</flag> <flag name="gles3">Enable OpenGL ES 3.x Features</flag> - <flag name="ois">pull in Object-oriented Input System library for samples</flag> - <flag name="poco">when USE=threads, use poco for threading</flag> - <flag name="tbb">when USE=threads, use tbb for threading</flag> - <flag name="tools">build+install helper tools</flag> - <flag name="zip">support zip archives</flag> + <flag name="ois">Pull in Object-oriented Input System library dev-games/ois for samples</flag> + <flag name="poco">When USE=threads, use poco for threading</flag> + <flag name="resman-pedantic"> + Resource Manager PEDANTIC : require an explicit resource group. Case + sensitive lookup. Some demos might not work with this setting. + (default: case-insensitive + sensitive lookup in all groups) + </flag> + <flag name="resman-strict"> + Resource Manager STRICT : search in default group if not specified otherwise. + Case sensitive lookup. Some demos might not work with this setting. + (default: case-insensitive + sensitive lookup in all groups) + </flag> + <flag name="tbb">When USE=threads, use tbb for threading</flag> + <flag name="tools">Build and install helper tools</flag> + <flag name="zip">Support zip archives</flag> </use> <upstream> <remote-id type="bitbucket">sinbad/ogre</remote-id> diff --git a/dev-games/ogre/ogre-1.10.12.ebuild b/dev-games/ogre/ogre-1.10.12.ebuild new file mode 100644 index 000000000000..34a0952245b9 --- /dev/null +++ b/dev-games/ogre/ogre-1.10.12.ebuild @@ -0,0 +1,124 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +CMAKE_REMOVE_MODULES="yes" +CMAKE_REMOVE_MODULES_LIST="FindFreetype FindDoxygen FindZLIB" +inherit cmake-utils + +DESCRIPTION="Object-oriented Graphics Rendering Engine" +HOMEPAGE="https://www.ogre3d.org/" +SRC_URI="https://github.com/OGRECave/${PN}/archive/v${PV}.zip -> ${P}.zip" + +LICENSE="MIT public-domain" +SLOT="0/1.10.0" +KEYWORDS="~amd64 ~arm ~x86" + +IUSE="+cache cg doc double-precision egl examples experimental +freeimage gles2 + +opengl profile resman-pedantic resman-strict tools" + +REQUIRED_USE=" + || ( gles2 opengl ) + ?? ( resman-pedantic resman-strict ) + examples? ( experimental ) +" +RESTRICT="test" #139905 + +RDEPEND=" + dev-games/ois + dev-libs/boost:= + dev-libs/zziplib + media-libs/freetype:2 + x11-libs/libX11 + x11-libs/libXaw + x11-libs/libXrandr + x11-libs/libXt + cg? ( media-gfx/nvidia-cg-toolkit ) + egl? ( media-libs/mesa[egl] ) + freeimage? ( media-libs/freeimage ) + gles2? ( media-libs/mesa[gles2] ) + opengl? ( + virtual/glu + virtual/opengl + ) + tools? ( dev-libs/tinyxml[stl] ) +" +DEPEND="${RDEPEND} + virtual/pkgconfig + x11-base/xorg-proto + doc? ( app-doc/doxygen )" + +PATCHES=( + "${FILESDIR}/${PN}-1.10.11-samples.patch" + "${FILESDIR}/${PN}-1.10.11-resource_path.patch" + "${FILESDIR}/${PN}-1.10.11-media_path.patch" + "${FILESDIR}/${P}-use_system_tinyxml.patch" +) + +src_prepare() { + sed -i \ + -e "s:share/OGRE/docs:share/doc/${PF}:" \ + Docs/CMakeLists.txt || die + # Stupid build system hardcodes release names + sed -i \ + -e '/CONFIGURATIONS/s:CONFIGURATIONS Release.*::' \ + CMake/Utils/OgreConfigTargets.cmake || die + + # Fix some path issues + cmake-utils_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DOGRE_BUILD_COMPONENT_BITES=$(usex experimental) + -DOGRE_BUILD_COMPONENT_HLMS=$(usex experimental) + -DOGRE_BUILD_COMPONENT_JAVA=no + -DOGRE_BUILD_COMPONENT_PYTHON=no + -DOGRE_BUILD_DEPENDENCIES=no + -DOGRE_BUILD_PLUGIN_CG=$(usex cg) + -DOGRE_BUILD_RENDERSYSTEM_GL=$(usex opengl) + -DOGRE_BUILD_RENDERSYSTEM_GL3PLUS=$(usex opengl) + -DOGRE_BUILD_RENDERSYSTEM_GLES2=$(usex gles2) + -DOGRE_BUILD_SAMPLES=$(usex examples) + -DOGRE_BUILD_TESTS=no + -DOGRE_BUILD_TOOLS=$(usex tools) + -DOGRE_CONFIG_DOUBLE=$(usex double-precision) + -DOGRE_CONFIG_ENABLE_FREEIMAGE=$(usex freeimage) + -DOGRE_CONFIG_ENABLE_GL_STATE_CACHE_SUPPORT=$(usex cache) + -DOGRE_CONFIG_THREADS=3 + -DOGRE_CONFIG_THREAD_PROVIDER=std + -DOGRE_FULL_RPATH=no + -DOGRE_GLSUPPORT_USE_EGL=$(usex egl) + -DOGRE_INSTALL_DOCS=$(usex doc) + -DOGRE_INSTALL_SAMPLES=$(usex examples) + -DOGRE_INSTALL_SAMPLES_SOURCE=$(usex examples) + -DOGRE_NODE_STORAGE_LEGACY=no + -DOGRE_PROFILING=$(usex profile) + -DOGRE_RESOURCEMANAGER_STRICT=$(\ + usex resman-pedantic 1 $(\ + usex resman-strict 2 0)) + -DOGRE_USE_STD11=yes + ) + + cmake-utils_src_configure +} + +src_install() { + cmake-utils_src_install + + CONFIGDIR=/etc/OGRE + SHAREDIR=/usr/share/OGRE + + # plugins and resources are the main configuration + insinto "${CONFIGDIR}" + doins "${CMAKE_BUILD_DIR}"/bin/plugins.cfg + doins "${CMAKE_BUILD_DIR}"/bin/resources.cfg + dosym "${CONFIGDIR}"/plugins.cfg "${SHAREDIR}"/plugins.cfg + dosym "${CONFIGDIR}"/resources.cfg "${SHAREDIR}"/resources.cfg + + # These are only for the sample browser + insinto "${SHAREDIR}" + doins "${CMAKE_BUILD_DIR}"/bin/quakemap.cfg + doins "${CMAKE_BUILD_DIR}"/bin/samples.cfg +} |