Gentoo Archives: gentoo-commits

From: Andreas Sturmlechner <asturm@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-games/ogre/, dev-games/ogre/files/
Date: Sun, 07 Oct 2018 18:25:23
Message-Id: 1538936548.caa70850f4a747a5a5b9f8bd6d0e541e1f2b4310.asturm@gentoo
1 commit: caa70850f4a747a5a5b9f8bd6d0e541e1f2b4310
2 Author: Sven Eden <yamakuzure <AT> gmx <DOT> net>
3 AuthorDate: Fri Sep 7 06:32:24 2018 +0000
4 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
5 CommitDate: Sun Oct 7 18:22:28 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=caa70850
7
8 dev-games/ogre: Pre 2.1 release snapshot 2018-09-01 added
9
10 As the future of Ogre changes a lot of the old API, it is important to have
11 access to the new system as early as possible. The current development state
12 is quite usable already, although not all components have been ported, yet.
13
14 Providing an ebuild for the new 2.1 series to interested users and developers,
15 everybody gets the chance to adapt their project to the future of Ogre.
16
17 This is done using snapshot ebuilds, because not all commits in the Ogre tree
18 provide buildable revisions. Further it is easier to test newly ported
19 components when snapshot ebuilds are used.
20
21 Bug: https://bugs.gentoo.org/647266
22 Closes: https://bugs.gentoo.org/647266
23 Signed-off-by: Sven Eden <sven.eden <AT> prydeworx.com>
24 Package-Manager: Portage-2.3.48, Repoman-2.3.10
25 Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
26
27 dev-games/ogre/Manifest | 1 +
28 .../files/ogre-2.1-enhance_config_loading.patch | 29 ++++
29 dev-games/ogre/files/ogre-2.1-media_path.patch | 28 ++++
30 dev-games/ogre/files/ogre-2.1-resource_path.patch | 18 +++
31 dev-games/ogre/files/ogre-2.1-samples.patch | 26 ++++
32 dev-games/ogre/metadata.xml | 8 ++
33 dev-games/ogre/ogre-2.1_pre20180901.ebuild | 153 +++++++++++++++++++++
34 7 files changed, 263 insertions(+)
35
36 diff --git a/dev-games/ogre/Manifest b/dev-games/ogre/Manifest
37 index 8b173e90d4f..1b26aeec681 100644
38 --- a/dev-games/ogre/Manifest
39 +++ b/dev-games/ogre/Manifest
40 @@ -1,3 +1,4 @@
41 DIST ogre-1.10.12.zip 133067192 BLAKE2B 188437153969504b169970d14c39d47c9e666308bf65412018f42ba8ad108876f164733fe2004ea31941ab5db534766c10b871b34ef525522d1120b175530b87 SHA512 63998ea4940d04adfc179a94aa91bb2598692307b429f4c7e5b86a1519c13817035de4c71afc9e4b33fde35e962504373d152de9b9cc8eebbbeb78b2c1942041
42 DIST ogre-1.11.2.zip 127409383 BLAKE2B 7493892f434847ea4afda580868b2a8572d65c9ea9de3709aacd789229531803450dbd78994ff0fae29a9435912a80029edba51db035c7a175c860ce07912968 SHA512 dc6a7e14ee515d5a5c218aa3f31cefc8ad95a175604fb5fb252185220c6fd537f7094d3a1086d5eb5e9515f8c528c7f6e2ccc95594ef9882204c666b87fae4e2
43 DIST ogre-1.9.0.tar.bz2 128098305 BLAKE2B 6e67a5b60a6606a910e099f1c7ba736eb525f079f3aba5cfb362329b9130059d303fc9df6f7b8611c0ba75e1e207fa018e543e93c9f5ce39a6621e4c72ed4a83 SHA512 b1ea93d80ac0978a7c228460a6714f8d17797450efd5af6765c9fa4402e9060a8ef3a700d2757593a3016fdc32276722c8f4a5d9889a3e2eb424f16162a52bde
44 +DIST ogre-2.1_pre20180901.tar.bz2 152746767 BLAKE2B 758d31fca2e5e31080c688ba758948fb5998a8fe49b9052f79de6791786501d02d7079e8f55ed37dc1a93f360af1003d2a28a260ba687c60c75a1340b95232a7 SHA512 c3cb5630a35e0ddf8c688a972ab5f2821d62545b4febc013235157eaf5268b3ceac1b94c403d0298131991f3d80d1c9b3800212a49647c652ba02bd176f6cc04
45
46 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
47 new file mode 100644
48 index 00000000000..365aa7c69d6
49 --- /dev/null
50 +++ b/dev-games/ogre/files/ogre-2.1-enhance_config_loading.patch
51 @@ -0,0 +1,29 @@
52 +--- a/OgreMain/src/OgreConfigFile.cpp 2018-07-27 07:52:31.121337386 +0200
53 ++++ b/OgreMain/src/OgreConfigFile.cpp 2018-07-27 07:59:51.301317661 +0200
54 +@@ -62,8 +62,25 @@
55 + //-----------------------------------------------------------------------
56 + void ConfigFile::load(const String& filename, const String& separators, bool trimWhitespace)
57 + {
58 +- loadDirect(filename, separators, trimWhitespace);
59 ++ // Try automatic loading first
60 ++ try {
61 ++ loadDirect(filename, separators, trimWhitespace);
62 ++ } catch (Exception &e) {
63 ++ // Try /etc/OGRE/<file> next
64 ++ try {
65 ++ loadDirect("/etc/OGRE/" + filename, separators, trimWhitespace);
66 ++ return;
67 ++ } catch (...) { /* was just a test */ }
68 ++ // Try /usr/share/OGRE/<file> last
69 ++ try {
70 ++ loadDirect("/usr/share/OGRE/" + filename, separators, trimWhitespace);
71 ++ return;
72 ++ } catch (...) { /* was just a test */ }
73 ++ /* dammit... */
74 ++ throw e;
75 ++ }
76 + }
77 ++
78 + //-----------------------------------------------------------------------
79 + void ConfigFile::load(const String& filename, const String& resourceGroup,
80 + const String& separators, bool trimWhitespace)
81
82 diff --git a/dev-games/ogre/files/ogre-2.1-media_path.patch b/dev-games/ogre/files/ogre-2.1-media_path.patch
83 new file mode 100644
84 index 00000000000..5e7ad276ac0
85 --- /dev/null
86 +++ b/dev-games/ogre/files/ogre-2.1-media_path.patch
87 @@ -0,0 +1,28 @@
88 +--- a/CMake/InstallResources.cmake 2018-03-23 10:49:24.620486243 +0100
89 ++++ b/CMake/InstallResources.cmake 2018-03-23 10:50:52.089485597 +0100
90 +@@ -186,15 +186,16 @@
91 +
92 + # CREATE CONFIG FILES - BUILD DIR VERSIONS
93 + if (NOT (OGRE_BUILD_PLATFORM_APPLE_IOS OR WINDOWS_STORE OR WINDOWS_PHONE))
94 +- if( NOT APPLE )
95 +- set(OGRE_MEDIA_DIR_REL "${OGRE_SOURCE_DIR}/Samples/Media")
96 +- set(OGRE_MEDIA_DIR_DBG "${OGRE_SOURCE_DIR}/Samples/Media")
97 +- else()
98 +- set(OGRE_MEDIA_DIR_REL "Contents/Resources")
99 +- set(OGRE_MEDIA_DIR_DBG "Contents/Resources")
100 +- endif()
101 +- set(OGRE_TEST_MEDIA_DIR_REL "${OGRE_SOURCE_DIR}/Tests/Media")
102 +- set(OGRE_TEST_MEDIA_DIR_DBG "${OGRE_SOURCE_DIR}/Tests/Media")
103 ++# No, they were fine already
104 ++# if( NOT APPLE )
105 ++# set(OGRE_MEDIA_DIR_REL "${OGRE_SOURCE_DIR}/Samples/Media")
106 ++# set(OGRE_MEDIA_DIR_DBG "${OGRE_SOURCE_DIR}/Samples/Media")
107 ++# else()
108 ++# set(OGRE_MEDIA_DIR_REL "Contents/Resources")
109 ++# set(OGRE_MEDIA_DIR_DBG "Contents/Resources")
110 ++# endif()
111 ++# set(OGRE_TEST_MEDIA_DIR_REL "${OGRE_SOURCE_DIR}/Tests/Media")
112 ++# set(OGRE_TEST_MEDIA_DIR_DBG "${OGRE_SOURCE_DIR}/Tests/Media")
113 + else ()
114 + # iOS needs to use relative paths in the config files
115 + set(OGRE_TEST_MEDIA_DIR_REL "${OGRE_MEDIA_PATH}")
116
117 diff --git a/dev-games/ogre/files/ogre-2.1-resource_path.patch b/dev-games/ogre/files/ogre-2.1-resource_path.patch
118 new file mode 100644
119 index 00000000000..32cfef0d8d1
120 --- /dev/null
121 +++ b/dev-games/ogre/files/ogre-2.1-resource_path.patch
122 @@ -0,0 +1,18 @@
123 +--- a/CMake/InstallResources.cmake 2018-03-23 10:48:44.371486540 +0100
124 ++++ b/CMake/InstallResources.cmake 2018-03-23 10:49:08.333486363 +0100
125 +@@ -226,10 +226,11 @@
126 + set(OGRE_SAMPLES_DIR_REL "")
127 + set(OGRE_SAMPLES_DIR_DBG "")
128 + elseif (UNIX)
129 +- set(OGRE_PLUGIN_DIR_REL "${OGRE_BINARY_DIR}/lib")
130 +- set(OGRE_PLUGIN_DIR_DBG "${OGRE_BINARY_DIR}/lib")
131 +- set(OGRE_SAMPLES_DIR_REL "${OGRE_BINARY_DIR}/lib")
132 +- set(OGRE_SAMPLES_DIR_DBG "${OGRE_BINARY_DIR}/lib")
133 ++# No, this was already configured above, the BINARY paths are wrong!
134 ++# set(OGRE_PLUGIN_DIR_REL "${OGRE_BINARY_DIR}/lib")
135 ++# set(OGRE_PLUGIN_DIR_DBG "${OGRE_BINARY_DIR}/lib")
136 ++# set(OGRE_SAMPLES_DIR_REL "${OGRE_BINARY_DIR}/lib")
137 ++# set(OGRE_SAMPLES_DIR_DBG "${OGRE_BINARY_DIR}/lib")
138 + endif ()
139 +
140 + if (WINDOWS_STORE OR WINDOWS_PHONE)
141
142 diff --git a/dev-games/ogre/files/ogre-2.1-samples.patch b/dev-games/ogre/files/ogre-2.1-samples.patch
143 new file mode 100644
144 index 00000000000..6d12fb4fed1
145 --- /dev/null
146 +++ b/dev-games/ogre/files/ogre-2.1-samples.patch
147 @@ -0,0 +1,26 @@
148 +--- a/CMakeLists.txt 2018-03-23 10:48:02.309486850 +0100
149 ++++ b/CMakeLists.txt 2018-03-23 10:48:04.157486836 +0100
150 +@@ -614,7 +614,9 @@
151 + endif ()
152 +
153 + # Setup samples
154 +-add_subdirectory(Samples)
155 ++if (OGRE_BUILD_SAMPLES2)
156 ++ add_subdirectory(Samples)
157 ++endif ()
158 +
159 + # Add android JNI binding
160 + if(ANDROID AND OGRE_BUILD_ANDROID_JNI_SAMPLE)
161 +--- a/CMake/InstallResources.cmake 2018-04-06 19:18:45.095348540 +0200
162 ++++ b/CMake/InstallResources.cmake 2018-04-06 19:20:00.342345608 +0200
163 +@@ -62,8 +62,8 @@
164 + set(OGRE_TEST_MEDIA_DIR_DBG "${CMAKE_INSTALL_PREFIX}/Tests/Media")
165 + set(OGRE_PLUGIN_DIR_REL "${CMAKE_INSTALL_PREFIX}/${OGRE_LIB_DIRECTORY}/OGRE")
166 + set(OGRE_PLUGIN_DIR_DBG "${CMAKE_INSTALL_PREFIX}/${OGRE_LIB_DIRECTORY}/OGRE")
167 +- set(OGRE_SAMPLES_DIR_REL "${CMAKE_INSTALL_PREFIX}/${OGRE_LIB_DIRECTORY}/OGRE/Samples")
168 +- set(OGRE_SAMPLES_DIR_DBG "${CMAKE_INSTALL_PREFIX}/${OGRE_LIB_DIRECTORY}/OGRE/Samples")
169 ++ set(OGRE_SAMPLES_DIR_REL "${CMAKE_INSTALL_PREFIX}/share/OGRE/Samples")
170 ++ set(OGRE_SAMPLES_DIR_DBG "${CMAKE_INSTALL_PREFIX}/share/OGRE/Samples")
171 + set(OGRE_CFG_INSTALL_PATH "share/OGRE")
172 + endif ()
173 +
174
175 diff --git a/dev-games/ogre/metadata.xml b/dev-games/ogre/metadata.xml
176 index f6f82039884..5db91d3cf65 100644
177 --- a/dev-games/ogre/metadata.xml
178 +++ b/dev-games/ogre/metadata.xml
179 @@ -94,8 +94,16 @@ Exporters
180 <flag name="gles2">Build OpenGL ES 2.x RenderSystem</flag>
181 <flag name="gles3">Enable OpenGL ES 3.x Features</flag>
182 <flag name="json">Use dev-libs/rapidjson (needed by Hlms JSON materials)</flag>
183 + <flag name="legacy-animations">
184 + Use the skeletal animation from 1.x. It's much slower, but the new system
185 + is still experimental.
186 + </flag>
187 <flag name="ois">Pull in Object-oriented Input System library dev-games/ois for samples</flag>
188 <flag name="poco">When USE=threads, use poco for threading</flag>
189 + <flag name="mobile">
190 + Build for OpenGL ES 2.0 only and use the mobile variants of the PBS and
191 + unlit material systems.
192 + </flag>
193 <flag name="resman-pedantic">
194 Resource Manager PEDANTIC : require an explicit resource group. Case
195 sensitive lookup. Some demos might not work with this setting.
196
197 diff --git a/dev-games/ogre/ogre-2.1_pre20180901.ebuild b/dev-games/ogre/ogre-2.1_pre20180901.ebuild
198 new file mode 100644
199 index 00000000000..9249788cc20
200 --- /dev/null
201 +++ b/dev-games/ogre/ogre-2.1_pre20180901.ebuild
202 @@ -0,0 +1,153 @@
203 +# Copyright 1999-2018 Gentoo Foundation
204 +# Distributed under the terms of the GNU General Public License v2
205 +
206 +EAPI=6
207 +
208 +CMAKE_REMOVE_MODULES="yes"
209 +CMAKE_REMOVE_MODULES_LIST="FindFreetype FindDoxygen FindZLIB"
210 +inherit cmake-utils
211 +
212 +MY_COMMIT="35b083cba64a"
213 +MY_P="sinbad-${PN}-${MY_COMMIT}"
214 +
215 +DESCRIPTION="Object-oriented Graphics Rendering Engine"
216 +HOMEPAGE="https://www.ogre3d.org/"
217 +SRC_URI="https://bitbucket.org/sinbad/ogre/get/${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2"
218 +
219 +LICENSE="MIT public-domain"
220 +SLOT="0/2.1"
221 +KEYWORDS=""
222 +
223 +IUSE="+cache debug doc egl examples +freeimage gles2 json +legacy-animations
224 + mobile +opengl profile tools"
225 +
226 +# USE flags that do not work, as their options aren't ported, yet.
227 +# cg
228 +# double-precision
229 +
230 +REQUIRED_USE="
231 + || ( gles2 opengl )
232 + mobile? ( egl gles2 !opengl )"
233 +
234 +RESTRICT="test" #139905
235 +
236 +RDEPEND="
237 + dev-games/ois
238 + dev-libs/zziplib
239 + media-libs/freetype:2
240 + x11-libs/libX11
241 + x11-libs/libXaw
242 + x11-libs/libXrandr
243 + x11-libs/libXt
244 + egl? ( media-libs/mesa[egl] )
245 + freeimage? ( media-libs/freeimage )
246 + gles2? ( media-libs/mesa[gles2] )
247 + json? ( dev-libs/rapidjson )
248 + opengl? (
249 + virtual/glu
250 + virtual/opengl
251 + )
252 + tools? ( dev-libs/tinyxml[stl] )
253 +"
254 +# Dependencies for USE flags that do not work, yet.
255 +# cg? ( media-gfx/nvidia-cg-toolkit )
256 +DEPEND="${RDEPEND}
257 + virtual/pkgconfig
258 + x11-base/xorg-proto
259 + doc? ( app-doc/doxygen )"
260 +
261 +PATCHES=(
262 + "${FILESDIR}/${PN}-2.1-samples.patch"
263 + "${FILESDIR}/${PN}-2.1-resource_path.patch"
264 + "${FILESDIR}/${PN}-2.1-media_path.patch"
265 + "${FILESDIR}/${PN}-2.1-enhance_config_loading.patch"
266 +)
267 +
268 +S=${WORKDIR}/${MY_P}
269 +
270 +src_prepare() {
271 + sed -i \
272 + -e "s:share/OGRE/docs:share/doc/${PF}:" \
273 + Docs/CMakeLists.txt || die
274 + # Stupid build system hardcodes release names
275 + sed -i \
276 + -e '/CONFIGURATIONS/s:CONFIGURATIONS Release.*::' \
277 + CMake/Utils/OgreConfigTargets.cmake || die
278 +
279 + # Fix some path issues
280 + cmake-utils_src_prepare
281 +}
282 +
283 +src_configure() {
284 + local mycmakeargs=(
285 + -DOGRE_BUILD_COMPONENT_HLMS_PBS=$( usex mobile no yes)
286 + -DOGRE_BUILD_COMPONENT_HLMS_PBS_MOBILE=$( usex mobile)
287 + -DOGRE_BUILD_COMPONENT_HLMS_UNLIT=$( usex mobile no yes)
288 + -DOGRE_BUILD_COMPONENT_HLMS_UNLIT_MOBILE=$(usex mobile)
289 + -DOGRE_BUILD_COMPONENT_PLANAR_REFLECTIONS=yes
290 + -DOGRE_BUILD_COMPONENT_SCENE_FORMAT=yes
291 + -DOGRE_BUILD_RENDERSYSTEM_GL3PLUS=$(usex opengl)
292 + -DOGRE_BUILD_RENDERSYSTEM_GLES=no
293 + -DOGRE_BUILD_RENDERSYSTEM_GLES2=$(usex gles2)
294 + -DOGRE_BUILD_SAMPLES2=$(usex examples)
295 + -DOGRE_BUILD_TESTS=no
296 + -DOGRE_BUILD_TOOLS=$(usex tools)
297 + -DOGRE_CONFIG_ENABLE_FREEIMAGE=$(usex freeimage)
298 + -DOGRE_CONFIG_ENABLE_GL_STATE_CACHE_SUPPORT=$(usex cache)
299 + -DOGRE_CONFIG_ENABLE_GLES3_SUPPORT=$(\
300 + usex gles2 $(\
301 + usex mobile no yes) no)
302 + -DOGRE_CONFIG_ENABLE_JSON=$(usex json)
303 + -DOGRE_CONFIG_THREADS=2
304 + -DOGRE_CONFIG_THREAD_PROVIDER=std
305 + -DOGRE_FULL_RPATH=no
306 + -DOGRE_INSTALL_DOCS=$(usex doc)
307 + -DOGRE_INSTALL_SAMPLES=$(usex examples)
308 + -DOGRE_INSTALL_SAMPLES_SOURCE=$(usex examples)
309 + -DOGRE_LEGACY_ANIMATIONS=$(usex legacy-animations)
310 + -DOGRE_PROFILING_PROVIDER=$(usex profile none internal)
311 + -DOGRE_USE_BOOST=no
312 + )
313 + # Options that aren't ported, yet:
314 + # -DOGRE_BUILD_PLUGIN_CG=$(usex cg)
315 + # -DOGRE_CONFIG_DOUBLE=$(usex double-precision)
316 +
317 + # These components are off by default, as they might not be ported, yet.
318 + # When advancing to a newer commit, try whether any of the disabled
319 + # components can be activated now.
320 + mycmakeargs+=(
321 + -DOGRE_BUILD_COMPONENT_PAGING=no
322 + -DOGRE_BUILD_COMPONENT_PROPERTY=no
323 + -DOGRE_BUILD_COMPONENT_RTSHADERSYSTEM=no
324 + -DOGRE_BUILD_RTSHADERSYSTEM_CORE_SHADERS=no
325 + -DOGRE_BUILD_RTSHADERSYSTEM_EXT_SHADERS=no
326 + -DOGRE_BUILD_COMPONENT_TERRAIN=no
327 + -DOGRE_BUILD_COMPONENT_VOLUME=no
328 + )
329 +
330 + cmake-utils_src_configure
331 +}
332 +
333 +src_install() {
334 + cmake-utils_src_install
335 +
336 + CONFIGDIR=/etc/OGRE
337 + SHAREDIR=/usr/share/OGRE
338 +
339 + # plugins and resources are the main configuration
340 + insinto "${CONFIGDIR}"
341 + doins "${CMAKE_BUILD_DIR}"/bin/plugins.cfg
342 + doins "${CMAKE_BUILD_DIR}"/bin/plugins_tools.cfg
343 + doins "${CMAKE_BUILD_DIR}"/bin/resources.cfg
344 + doins "${CMAKE_BUILD_DIR}"/bin/resources2.cfg
345 + dosym "${CONFIGDIR}"/plugins.cfg "${SHAREDIR}"/plugins.cfg
346 + dosym "${CONFIGDIR}"/plugins_tools.cfg "${SHAREDIR}"/plugins_tools.cfg
347 + dosym "${CONFIGDIR}"/resources.cfg "${SHAREDIR}"/resources.cfg
348 + dosym "${CONFIGDIR}"/resources2.cfg "${SHAREDIR}"/resources2.cfg
349 +
350 + # These are only for the Samples
351 + if use examples ; then
352 + insinto "${SHAREDIR}"
353 + doins "${CMAKE_BUILD_DIR}"/bin/samples.cfg
354 + fi
355 +}