summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-games')
-rw-r--r--dev-games/ogre/Manifest1
-rw-r--r--dev-games/ogre/files/ogre-2.1-enhance_config_loading.patch29
-rw-r--r--dev-games/ogre/files/ogre-2.1-media_path.patch28
-rw-r--r--dev-games/ogre/files/ogre-2.1-resource_path.patch18
-rw-r--r--dev-games/ogre/files/ogre-2.1-samples.patch26
-rw-r--r--dev-games/ogre/metadata.xml8
-rw-r--r--dev-games/ogre/ogre-2.1_pre20180901.ebuild153
7 files changed, 263 insertions, 0 deletions
diff --git a/dev-games/ogre/Manifest b/dev-games/ogre/Manifest
index 8b173e90d4fe..1b26aeec6818 100644
--- a/dev-games/ogre/Manifest
+++ b/dev-games/ogre/Manifest
@@ -1,3 +1,4 @@
DIST ogre-1.10.12.zip 133067192 BLAKE2B 188437153969504b169970d14c39d47c9e666308bf65412018f42ba8ad108876f164733fe2004ea31941ab5db534766c10b871b34ef525522d1120b175530b87 SHA512 63998ea4940d04adfc179a94aa91bb2598692307b429f4c7e5b86a1519c13817035de4c71afc9e4b33fde35e962504373d152de9b9cc8eebbbeb78b2c1942041
DIST ogre-1.11.2.zip 127409383 BLAKE2B 7493892f434847ea4afda580868b2a8572d65c9ea9de3709aacd789229531803450dbd78994ff0fae29a9435912a80029edba51db035c7a175c860ce07912968 SHA512 dc6a7e14ee515d5a5c218aa3f31cefc8ad95a175604fb5fb252185220c6fd537f7094d3a1086d5eb5e9515f8c528c7f6e2ccc95594ef9882204c666b87fae4e2
DIST ogre-1.9.0.tar.bz2 128098305 BLAKE2B 6e67a5b60a6606a910e099f1c7ba736eb525f079f3aba5cfb362329b9130059d303fc9df6f7b8611c0ba75e1e207fa018e543e93c9f5ce39a6621e4c72ed4a83 SHA512 b1ea93d80ac0978a7c228460a6714f8d17797450efd5af6765c9fa4402e9060a8ef3a700d2757593a3016fdc32276722c8f4a5d9889a3e2eb424f16162a52bde
+DIST ogre-2.1_pre20180901.tar.bz2 152746767 BLAKE2B 758d31fca2e5e31080c688ba758948fb5998a8fe49b9052f79de6791786501d02d7079e8f55ed37dc1a93f360af1003d2a28a260ba687c60c75a1340b95232a7 SHA512 c3cb5630a35e0ddf8c688a972ab5f2821d62545b4febc013235157eaf5268b3ceac1b94c403d0298131991f3d80d1c9b3800212a49647c652ba02bd176f6cc04
diff --git a/dev-games/ogre/files/ogre-2.1-enhance_config_loading.patch b/dev-games/ogre/files/ogre-2.1-enhance_config_loading.patch
new file mode 100644
index 000000000000..365aa7c69d61
--- /dev/null
+++ b/dev-games/ogre/files/ogre-2.1-enhance_config_loading.patch
@@ -0,0 +1,29 @@
+--- a/OgreMain/src/OgreConfigFile.cpp 2018-07-27 07:52:31.121337386 +0200
++++ b/OgreMain/src/OgreConfigFile.cpp 2018-07-27 07:59:51.301317661 +0200
+@@ -62,8 +62,25 @@
+ //-----------------------------------------------------------------------
+ void ConfigFile::load(const String& filename, const String& separators, bool trimWhitespace)
+ {
+- loadDirect(filename, separators, trimWhitespace);
++ // Try automatic loading first
++ try {
++ loadDirect(filename, separators, trimWhitespace);
++ } catch (Exception &e) {
++ // Try /etc/OGRE/<file> next
++ try {
++ loadDirect("/etc/OGRE/" + filename, separators, trimWhitespace);
++ return;
++ } catch (...) { /* was just a test */ }
++ // Try /usr/share/OGRE/<file> last
++ try {
++ loadDirect("/usr/share/OGRE/" + filename, separators, trimWhitespace);
++ return;
++ } catch (...) { /* was just a test */ }
++ /* dammit... */
++ throw e;
++ }
+ }
++
+ //-----------------------------------------------------------------------
+ void ConfigFile::load(const String& filename, const String& resourceGroup,
+ const String& separators, bool trimWhitespace)
diff --git a/dev-games/ogre/files/ogre-2.1-media_path.patch b/dev-games/ogre/files/ogre-2.1-media_path.patch
new file mode 100644
index 000000000000..5e7ad276ac09
--- /dev/null
+++ b/dev-games/ogre/files/ogre-2.1-media_path.patch
@@ -0,0 +1,28 @@
+--- a/CMake/InstallResources.cmake 2018-03-23 10:49:24.620486243 +0100
++++ b/CMake/InstallResources.cmake 2018-03-23 10:50:52.089485597 +0100
+@@ -186,15 +186,16 @@
+
+ # CREATE CONFIG FILES - BUILD DIR VERSIONS
+ if (NOT (OGRE_BUILD_PLATFORM_APPLE_IOS OR WINDOWS_STORE OR WINDOWS_PHONE))
+- if( NOT APPLE )
+- set(OGRE_MEDIA_DIR_REL "${OGRE_SOURCE_DIR}/Samples/Media")
+- set(OGRE_MEDIA_DIR_DBG "${OGRE_SOURCE_DIR}/Samples/Media")
+- else()
+- set(OGRE_MEDIA_DIR_REL "Contents/Resources")
+- set(OGRE_MEDIA_DIR_DBG "Contents/Resources")
+- endif()
+- set(OGRE_TEST_MEDIA_DIR_REL "${OGRE_SOURCE_DIR}/Tests/Media")
+- set(OGRE_TEST_MEDIA_DIR_DBG "${OGRE_SOURCE_DIR}/Tests/Media")
++# No, they were fine already
++# if( NOT APPLE )
++# set(OGRE_MEDIA_DIR_REL "${OGRE_SOURCE_DIR}/Samples/Media")
++# set(OGRE_MEDIA_DIR_DBG "${OGRE_SOURCE_DIR}/Samples/Media")
++# else()
++# set(OGRE_MEDIA_DIR_REL "Contents/Resources")
++# set(OGRE_MEDIA_DIR_DBG "Contents/Resources")
++# endif()
++# set(OGRE_TEST_MEDIA_DIR_REL "${OGRE_SOURCE_DIR}/Tests/Media")
++# set(OGRE_TEST_MEDIA_DIR_DBG "${OGRE_SOURCE_DIR}/Tests/Media")
+ else ()
+ # iOS needs to use relative paths in the config files
+ set(OGRE_TEST_MEDIA_DIR_REL "${OGRE_MEDIA_PATH}")
diff --git a/dev-games/ogre/files/ogre-2.1-resource_path.patch b/dev-games/ogre/files/ogre-2.1-resource_path.patch
new file mode 100644
index 000000000000..32cfef0d8d14
--- /dev/null
+++ b/dev-games/ogre/files/ogre-2.1-resource_path.patch
@@ -0,0 +1,18 @@
+--- a/CMake/InstallResources.cmake 2018-03-23 10:48:44.371486540 +0100
++++ b/CMake/InstallResources.cmake 2018-03-23 10:49:08.333486363 +0100
+@@ -226,10 +226,11 @@
+ set(OGRE_SAMPLES_DIR_REL "")
+ set(OGRE_SAMPLES_DIR_DBG "")
+ elseif (UNIX)
+- set(OGRE_PLUGIN_DIR_REL "${OGRE_BINARY_DIR}/lib")
+- set(OGRE_PLUGIN_DIR_DBG "${OGRE_BINARY_DIR}/lib")
+- set(OGRE_SAMPLES_DIR_REL "${OGRE_BINARY_DIR}/lib")
+- set(OGRE_SAMPLES_DIR_DBG "${OGRE_BINARY_DIR}/lib")
++# No, this was already configured above, the BINARY paths are wrong!
++# set(OGRE_PLUGIN_DIR_REL "${OGRE_BINARY_DIR}/lib")
++# set(OGRE_PLUGIN_DIR_DBG "${OGRE_BINARY_DIR}/lib")
++# set(OGRE_SAMPLES_DIR_REL "${OGRE_BINARY_DIR}/lib")
++# set(OGRE_SAMPLES_DIR_DBG "${OGRE_BINARY_DIR}/lib")
+ endif ()
+
+ if (WINDOWS_STORE OR WINDOWS_PHONE)
diff --git a/dev-games/ogre/files/ogre-2.1-samples.patch b/dev-games/ogre/files/ogre-2.1-samples.patch
new file mode 100644
index 000000000000..6d12fb4fed11
--- /dev/null
+++ b/dev-games/ogre/files/ogre-2.1-samples.patch
@@ -0,0 +1,26 @@
+--- a/CMakeLists.txt 2018-03-23 10:48:02.309486850 +0100
++++ b/CMakeLists.txt 2018-03-23 10:48:04.157486836 +0100
+@@ -614,7 +614,9 @@
+ endif ()
+
+ # Setup samples
+-add_subdirectory(Samples)
++if (OGRE_BUILD_SAMPLES2)
++ add_subdirectory(Samples)
++endif ()
+
+ # Add android JNI binding
+ if(ANDROID AND OGRE_BUILD_ANDROID_JNI_SAMPLE)
+--- a/CMake/InstallResources.cmake 2018-04-06 19:18:45.095348540 +0200
++++ b/CMake/InstallResources.cmake 2018-04-06 19:20:00.342345608 +0200
+@@ -62,8 +62,8 @@
+ set(OGRE_TEST_MEDIA_DIR_DBG "${CMAKE_INSTALL_PREFIX}/Tests/Media")
+ set(OGRE_PLUGIN_DIR_REL "${CMAKE_INSTALL_PREFIX}/${OGRE_LIB_DIRECTORY}/OGRE")
+ set(OGRE_PLUGIN_DIR_DBG "${CMAKE_INSTALL_PREFIX}/${OGRE_LIB_DIRECTORY}/OGRE")
+- set(OGRE_SAMPLES_DIR_REL "${CMAKE_INSTALL_PREFIX}/${OGRE_LIB_DIRECTORY}/OGRE/Samples")
+- set(OGRE_SAMPLES_DIR_DBG "${CMAKE_INSTALL_PREFIX}/${OGRE_LIB_DIRECTORY}/OGRE/Samples")
++ set(OGRE_SAMPLES_DIR_REL "${CMAKE_INSTALL_PREFIX}/share/OGRE/Samples")
++ set(OGRE_SAMPLES_DIR_DBG "${CMAKE_INSTALL_PREFIX}/share/OGRE/Samples")
+ set(OGRE_CFG_INSTALL_PATH "share/OGRE")
+ endif ()
+
diff --git a/dev-games/ogre/metadata.xml b/dev-games/ogre/metadata.xml
index f6f82039884f..5db91d3cf65f 100644
--- a/dev-games/ogre/metadata.xml
+++ b/dev-games/ogre/metadata.xml
@@ -94,8 +94,16 @@ Exporters
<flag name="gles2">Build OpenGL ES 2.x RenderSystem</flag>
<flag name="gles3">Enable OpenGL ES 3.x Features</flag>
<flag name="json">Use dev-libs/rapidjson (needed by Hlms JSON materials)</flag>
+ <flag name="legacy-animations">
+ Use the skeletal animation from 1.x. It's much slower, but the new system
+ is still experimental.
+ </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="mobile">
+ Build for OpenGL ES 2.0 only and use the mobile variants of the PBS and
+ unlit material systems.
+ </flag>
<flag name="resman-pedantic">
Resource Manager PEDANTIC : require an explicit resource group. Case
sensitive lookup. Some demos might not work with this setting.
diff --git a/dev-games/ogre/ogre-2.1_pre20180901.ebuild b/dev-games/ogre/ogre-2.1_pre20180901.ebuild
new file mode 100644
index 000000000000..9249788cc201
--- /dev/null
+++ b/dev-games/ogre/ogre-2.1_pre20180901.ebuild
@@ -0,0 +1,153 @@
+# 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
+
+MY_COMMIT="35b083cba64a"
+MY_P="sinbad-${PN}-${MY_COMMIT}"
+
+DESCRIPTION="Object-oriented Graphics Rendering Engine"
+HOMEPAGE="https://www.ogre3d.org/"
+SRC_URI="https://bitbucket.org/sinbad/ogre/get/${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2"
+
+LICENSE="MIT public-domain"
+SLOT="0/2.1"
+KEYWORDS=""
+
+IUSE="+cache debug doc egl examples +freeimage gles2 json +legacy-animations
+ mobile +opengl profile tools"
+
+# USE flags that do not work, as their options aren't ported, yet.
+# cg
+# double-precision
+
+REQUIRED_USE="
+ || ( gles2 opengl )
+ mobile? ( egl gles2 !opengl )"
+
+RESTRICT="test" #139905
+
+RDEPEND="
+ dev-games/ois
+ dev-libs/zziplib
+ media-libs/freetype:2
+ x11-libs/libX11
+ x11-libs/libXaw
+ x11-libs/libXrandr
+ x11-libs/libXt
+ egl? ( media-libs/mesa[egl] )
+ freeimage? ( media-libs/freeimage )
+ gles2? ( media-libs/mesa[gles2] )
+ json? ( dev-libs/rapidjson )
+ opengl? (
+ virtual/glu
+ virtual/opengl
+ )
+ tools? ( dev-libs/tinyxml[stl] )
+"
+# Dependencies for USE flags that do not work, yet.
+# cg? ( media-gfx/nvidia-cg-toolkit )
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ x11-base/xorg-proto
+ doc? ( app-doc/doxygen )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.1-samples.patch"
+ "${FILESDIR}/${PN}-2.1-resource_path.patch"
+ "${FILESDIR}/${PN}-2.1-media_path.patch"
+ "${FILESDIR}/${PN}-2.1-enhance_config_loading.patch"
+)
+
+S=${WORKDIR}/${MY_P}
+
+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_HLMS_PBS=$( usex mobile no yes)
+ -DOGRE_BUILD_COMPONENT_HLMS_PBS_MOBILE=$( usex mobile)
+ -DOGRE_BUILD_COMPONENT_HLMS_UNLIT=$( usex mobile no yes)
+ -DOGRE_BUILD_COMPONENT_HLMS_UNLIT_MOBILE=$(usex mobile)
+ -DOGRE_BUILD_COMPONENT_PLANAR_REFLECTIONS=yes
+ -DOGRE_BUILD_COMPONENT_SCENE_FORMAT=yes
+ -DOGRE_BUILD_RENDERSYSTEM_GL3PLUS=$(usex opengl)
+ -DOGRE_BUILD_RENDERSYSTEM_GLES=no
+ -DOGRE_BUILD_RENDERSYSTEM_GLES2=$(usex gles2)
+ -DOGRE_BUILD_SAMPLES2=$(usex examples)
+ -DOGRE_BUILD_TESTS=no
+ -DOGRE_BUILD_TOOLS=$(usex tools)
+ -DOGRE_CONFIG_ENABLE_FREEIMAGE=$(usex freeimage)
+ -DOGRE_CONFIG_ENABLE_GL_STATE_CACHE_SUPPORT=$(usex cache)
+ -DOGRE_CONFIG_ENABLE_GLES3_SUPPORT=$(\
+ usex gles2 $(\
+ usex mobile no yes) no)
+ -DOGRE_CONFIG_ENABLE_JSON=$(usex json)
+ -DOGRE_CONFIG_THREADS=2
+ -DOGRE_CONFIG_THREAD_PROVIDER=std
+ -DOGRE_FULL_RPATH=no
+ -DOGRE_INSTALL_DOCS=$(usex doc)
+ -DOGRE_INSTALL_SAMPLES=$(usex examples)
+ -DOGRE_INSTALL_SAMPLES_SOURCE=$(usex examples)
+ -DOGRE_LEGACY_ANIMATIONS=$(usex legacy-animations)
+ -DOGRE_PROFILING_PROVIDER=$(usex profile none internal)
+ -DOGRE_USE_BOOST=no
+ )
+ # Options that aren't ported, yet:
+ # -DOGRE_BUILD_PLUGIN_CG=$(usex cg)
+ # -DOGRE_CONFIG_DOUBLE=$(usex double-precision)
+
+ # These components are off by default, as they might not be ported, yet.
+ # When advancing to a newer commit, try whether any of the disabled
+ # components can be activated now.
+ mycmakeargs+=(
+ -DOGRE_BUILD_COMPONENT_PAGING=no
+ -DOGRE_BUILD_COMPONENT_PROPERTY=no
+ -DOGRE_BUILD_COMPONENT_RTSHADERSYSTEM=no
+ -DOGRE_BUILD_RTSHADERSYSTEM_CORE_SHADERS=no
+ -DOGRE_BUILD_RTSHADERSYSTEM_EXT_SHADERS=no
+ -DOGRE_BUILD_COMPONENT_TERRAIN=no
+ -DOGRE_BUILD_COMPONENT_VOLUME=no
+ )
+
+ 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/plugins_tools.cfg
+ doins "${CMAKE_BUILD_DIR}"/bin/resources.cfg
+ doins "${CMAKE_BUILD_DIR}"/bin/resources2.cfg
+ dosym "${CONFIGDIR}"/plugins.cfg "${SHAREDIR}"/plugins.cfg
+ dosym "${CONFIGDIR}"/plugins_tools.cfg "${SHAREDIR}"/plugins_tools.cfg
+ dosym "${CONFIGDIR}"/resources.cfg "${SHAREDIR}"/resources.cfg
+ dosym "${CONFIGDIR}"/resources2.cfg "${SHAREDIR}"/resources2.cfg
+
+ # These are only for the Samples
+ if use examples ; then
+ insinto "${SHAREDIR}"
+ doins "${CMAKE_BUILD_DIR}"/bin/samples.cfg
+ fi
+}