diff options
Diffstat (limited to 'games-engines')
25 files changed, 875 insertions, 295 deletions
diff --git a/games-engines/Manifest.gz b/games-engines/Manifest.gz Binary files differindex 3704e9f37f3f..728a8ae7bb67 100644 --- a/games-engines/Manifest.gz +++ b/games-engines/Manifest.gz diff --git a/games-engines/dMagnetic/Manifest b/games-engines/dMagnetic/Manifest index 5c852fc668c1..3bee4e755596 100644 --- a/games-engines/dMagnetic/Manifest +++ b/games-engines/dMagnetic/Manifest @@ -1,3 +1,3 @@ -DIST dMagnetic_0.23.tar.bz2 60820 BLAKE2B bd4e67a61a1f3866a9dedfd78c0f03a3554beeae99d342e337f1ee4bc7093aab56853631dd3e04adf4e3e024721733bc6d0f0c15f5236fe4a68228cee666dc12 SHA512 380b5f5f2353eb9ad78ea6b5321dfe4cd24f6e2713d1da03490f5dc27641b4e65f023be0158eed80a08a9a61e838c6b924eb905d5e0cdfffcbeacc31707ea675 -EBUILD dMagnetic-0.23.ebuild 710 BLAKE2B 221555e4c5a40e7753a9e164c042b406e6eeccef835465d77b831caf51e3008c386a3e1deffb490bc6cd9f9f435ca7d90508870513a051e83576930f3cf59bfd SHA512 2cca6523e022c77c7f873b52af92e71871992a40452ae952ba1ab2f8d9b7b350cdb8f299d1f49d4e83e4db8099c1674f3d5e1936b95cd0ecbf718917f15d8764 +DIST dMagnetic_0.25.tar.bz2 68283 BLAKE2B c6fb145286e633e454b7b543d27cba65b1e1f4a5c4242d93458758d24ea37336042d08f8d2df71cc3719d0f8de2879b01178a034d952e4a01211f0f778906e84 SHA512 ea340630d2bbd1c875b79ec98d0205a1abde9ab0f1842651d0b7becf219e10baf8ce82b63e98b05a186e4a987688b2ca373472a078a7fe6b424d676ed041663a +EBUILD dMagnetic-0.25.ebuild 766 BLAKE2B a82da48542080663586445e2eed7b65dbca6df9198ac0b7ed1d19578a289e518577d8498ca9f8bae0a20f34765078e1f952dbb71e233907604012b47def67d5e SHA512 e96c8ecfa191962d1ec66522f7487bf29598d56c723192ca8c9e31f50b73795ca2f25854dfd18850adcfd3587a6158e9fe9ddf3934a490a392f5f9b813e42d96 MISC metadata.xml 253 BLAKE2B 443ca9c8d4f6801169382e87a0ecd1385c56e65229209e7200f9d313ef380e92ae8d7dc3c38e5989a4166289f22607a20b1e13bb960fff6b3d9f78629d8ab020 SHA512 61c4689cbc649d84a00be211b7b5b98dd03e1d3f813eff370df549f2998cd4343f391c18b57cf20e4a8f4dd2311e3bfa04eb60f356f2bbac78f0b68f5091f254 diff --git a/games-engines/dMagnetic/dMagnetic-0.23.ebuild b/games-engines/dMagnetic/dMagnetic-0.25.ebuild index 1c2d44b880d1..367e1726f452 100644 --- a/games-engines/dMagnetic/dMagnetic-0.23.ebuild +++ b/games-engines/dMagnetic/dMagnetic-0.25.ebuild @@ -26,6 +26,11 @@ src_compile() { LINK="$(tc-getCC) ${LDFLAGS}" } +src_test() { + emake check \ + SHA256_CMD=sha256sum +} + src_install() { dobin ${PN} doman ${PN}.1 ${PN}ini.5 diff --git a/games-engines/gemrb/Manifest b/games-engines/gemrb/Manifest deleted file mode 100644 index 0d1201c42be7..000000000000 --- a/games-engines/gemrb/Manifest +++ /dev/null @@ -1,3 +0,0 @@ -DIST gemrb-0.8.3.tar.gz 12370971 BLAKE2B ccb35d96bec5805df4086789eb43d52cd496be1aeb8fe5ee3ce7c096843075551f8b6bf37dc217b39e487ec33eeef3e1b10bd3e20814974bf5abc61ce017908c SHA512 6f091ba54d129c47b6ad7c3b1da898c7ef79b80629b373527963a0b35096ccbf91650087c4884081d306da4be7b4cfa1dc2f6d931d7140d7eccb380d9806db1c -EBUILD gemrb-0.8.3-r1.ebuild 1386 BLAKE2B be98f210ee7e1b047f7156337ebbadb6b48a61c5143072fdefbd74dbff217e735f2b55eb19ca7fceebb8fb47a4f4ff5bea4abf458c43db3dc7335c9ee1ef2549 SHA512 ea7494bc0f78a11bc7ab01bc2c9b9f01b9aefc1b4abc5b7a44ce66a37c4776f92c878fe6265f75517712edc919003eb55a0bf6db5c5d3e85e29ef705dd85951a -MISC metadata.xml 328 BLAKE2B 2e880539889540e163dfc2c24fe0338269256439e136b24b1d43260c1b493c8c7483c518b7490c2a43ec73cdf5023be6bce61f280390db88c5e644b5f43b58a9 SHA512 553586a61d8d824dbc4e9b4e19ad2eb3dc1ab10b42fcf1692853fc9b9c07ed4b0baa8d076a23a3b28250e198befe94e3050cb71b392d07e5b3535d5f6d50b676 diff --git a/games-engines/gemrb/gemrb-0.8.3-r1.ebuild b/games-engines/gemrb/gemrb-0.8.3-r1.ebuild deleted file mode 100644 index 6ec09ffb5278..000000000000 --- a/games-engines/gemrb/gemrb-0.8.3-r1.ebuild +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PYTHON_COMPAT=( python2_7 ) - -inherit eutils gnome2-utils python-single-r1 cmake-utils - -DESCRIPTION="Reimplementation of the Infinity engine" -HOMEPAGE="http://gemrb.sourceforge.net/" -SRC_URI="mirror://sourceforge/gemrb/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" - -RDEPEND=" - media-libs/freetype - media-libs/libpng:0= - >=media-libs/libsdl-1.2[video] - media-libs/libvorbis - media-libs/openal - media-libs/sdl-mixer - sys-libs/zlib - ${PYTHON_DEPS}" -DEPEND="${RDEPEND} - virtual/pkgconfig" - -src_prepare() { - cmake-utils_src_prepare - - sed -i \ - -e '/COPYING/d' \ - CMakeLists.txt || die -} - -src_configure() { - local mycmakeargs=( - -DBIN_DIR=bin - -DDATA_DIR=share/gemrb - -DDOC_DIR=share/doc/${PF} - -DICON_DIR=share/pixmaps - -DLIB_DIR=$(get_libdir) - -DMAN_DIR=share/man/man6 - -DMENU_DIR=share/applications - -DSVG_DIR=share/icons/hicolor/scalable/apps - -DSYSCONF_DIR=/etc/${PN} - # needed, causes massive QA warnings otherwise - -DCMAKE_SKIP_RPATH=ON - ) - cmake-utils_src_configure -} - -src_install() { - cmake-utils_src_install - python_fix_shebang "${ED%/}"/usr/bin/extend2da.py -} - -pkg_preinst() { - gnome2_icon_savelist -} - -pkg_postinst() { - gnome2_icon_cache_update -} - -pkg_postrm() { - gnome2_icon_cache_update -} diff --git a/games-engines/gemrb/metadata.xml b/games-engines/gemrb/metadata.xml deleted file mode 100644 index 48acc454984a..000000000000 --- a/games-engines/gemrb/metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="project"> - <email>games@gentoo.org</email> - <name>Gentoo Games Project</name> - </maintainer> - <upstream> - <remote-id type="sourceforge">gemrb</remote-id> - </upstream> -</pkgmetadata> diff --git a/games-engines/openmw/Manifest b/games-engines/openmw/Manifest index 19e73e8f5e44..d9571ece6328 100644 --- a/games-engines/openmw/Manifest +++ b/games-engines/openmw/Manifest @@ -1,6 +1,12 @@ -AUX openmw-0.45.0-osg-3.6.5-1.patch 2715 BLAKE2B 9b08b8cad0afd58170389f97cfca232330dcf14fa80d40a4dce4f0f9c770e3262b4206ff555d341e937c6c54b40c60030612b8478dddad97149a90b2431cc8f0 SHA512 95abc6fe8f2e9619c240b859e607e2119e7407e3d2688d78e98167007a4b1d9696d5198f6ba4644a8646a0435ae76611d315f07cd11f00165db71f3c9d18897b -AUX openmw-0.45.0-osg-3.6.5-2.patch 642 BLAKE2B 4ece0c64eefdbd249de648fc3c85087f392bddb073033872b26a85dbfc044a7b7b11097bc5a322d3a8b074ccde75ee507f7254c9bed2386480f2962acad505e4 SHA512 a5e5e11ffdeb96f921edf2dc3e787ed5be21ae816330841da263518df29c58a7231980194519db426e3ac45602320f108b4de9e262d643c58c23652beb4dde9d -DIST openmw-0.45.0.tar.gz 4711103 BLAKE2B 85676294b07170dd6845892e9e7b354c5767428584c76ea2e1a64e9f9c72c46c279fdf5043058d37b927cb55e6cf2e2222833129d64954cdcdb3af4eb4b84dc3 SHA512 b968426659457cf486f6756f7ab82cc4cb34a92923c433dd86f711e5d7097f75441ed17daa50d21f15f1847f5aed1f4c3a094a06cfd3f2e9b90aa182742c596f -EBUILD openmw-0.45.0.ebuild 3181 BLAKE2B a307152c8ee882a2fffeb13cee467905421a31781d446eb6d87618f8c040b08bae35f924408aca7eb1e63fd5a88a8166255a25df2d8ac4ed9d36c28a6dd86f74 SHA512 7db0200339d854d1f0eac9fbbbb5457c647ef0a2ae4a7abf9a52707e722ae6643356f88293d114c034672e8c50c1d77ecf1391c5156e18061ba59168f97d0f66 -EBUILD openmw-9999.ebuild 3369 BLAKE2B 65fb37a972d19e2d47b2b7b7c7b1a6aa2a4f13e5383f32654c8aa7bad2450829e01c56e41310e574d62fd5b0d9d0cf0f1dcfb3ee4f6beeac5a20bd003ff5c36a SHA512 968d75c244e28a689ed8096330e453c88d57dfc6e40b7f9c0d6725978a4849c760ca4351a9485891b4bf419297c512369d28ad673eec285b1fcee0606060e260 -MISC metadata.xml 1278 BLAKE2B 5a79eef3251275f05d388d0236edd548baf111ce140cbfd6942851909039299f5bf6460d01b2a8c760c82c46a6b5880e0316c1cc0c4eda9a1599ce76b127c8ee SHA512 96b66a7c7f8cb4303b9853640e8e11f7be48bd7e5d644db9468ac0b43c1254e670f2e84a2117dbdd31c9709207c58d0ad523e3310287515bc11fa0e58de5c4ab +AUX openmw-0.46.0-fix-cast.patch 12792 BLAKE2B 583ca033350e16116de85ba3bfc121bc2a444686a4e7c75388880835e708e0860c787ee6504b6f907b6749afd23acaea87b84aeece5553a2e61562142d223257 SHA512 7784c327cb442e20afb0409f0f5ef2791fa9dbe3c15b6a8e60baabec7a1179778577ac60e5c14e9e83868c15db1aaffa145006ce4d0140f0db4869c6eb0f8b9a +AUX openmw-0.46.0-floattest2.patch 8586 BLAKE2B b419473aa1f00b327654b0f3862819f296d8390ce9a290ebd98fcf39175d85045ad85bf1ca9521a6f033f836a7331e1511e3005f2ac2f15b43c45b22641d281f SHA512 286e9fa560f62f5a291c622a7939c57e8c674ba1a4762c6a20a8fefe0b91092ffd7a1663dd70f4cc287833de0a8177329bb58e1e87b3cc9ed0d22a4a4cd71c9d +AUX openmw-0.46.0-missing-include.patch 682 BLAKE2B fa80b94d9ce91e1b05b96c02e80f32f1e9066ba6f8ada4a1e5150cf3a278d3a233eda42269b3027c56aaa7be98dd33cbcc3932d1e0930a51bd6b5744a73d6b6e SHA512 d0d47fe249e8fb366e00e272dc62853f8a2aaa75d45d83d270891e76674c1382fd3405e674e3b6c383bbc17125c4471893e77251744deae4d17bc373d847a638 +AUX openmw-0.46.0-mygui-license.patch 742 BLAKE2B a36016cf4b29c31918376dd27082f42cdaeacd5e8fff5a2860b827ce3db6b7fd711b2c6b8453b3792d506ec31749fb457d11225c64ff792257e30c796013501b SHA512 43895daa22eaf5891d789abed22e6d9df3c6817a7060bee7407963dbd13413dcd8fce03f236b3d7e0d589d925e9cbfe5125c72b1b2735479bf56d122cad85383 +AUX openmw-0.46.0-nifbullet-test.patch 12675 BLAKE2B fadb3c75bd0fcf4f351f30c86cdc3b407f4f7e97c3c9c278f3e20197a5c78c5b9ff320c9a53bd04fd40114f3b851f9523dd390c75487832cee67b3de7ef228d6 SHA512 e63d5f1e3e3c03a94ff2e926b2ce54d611c12a29749eba8d3c20c4d1ba1ee437142e40b20c08d2da714d7e98d573f4b1e5eaa99425b6dd27aace0e1852bb0ccb +AUX openmw-0.46.0-recastnavigation.patch 988 BLAKE2B 3d9dd71a02070268fe21006fda20f2617ad57ce11782c5d05d3deb0c51ae2e2c91f679b23da92b6b939479fe176e99d63705ab1a3bb9d20cc7c39ab55fff2ac3 SHA512 49591f413ff68fbb11b7742c44d138f234e69478eae3462a5a402ac626bf67283e18a05dd2e2cea33706cdeb54deaf28e8a788e91491ddfe0ce10ffd978fc4e0 +AUX openmw-0.47.0-mygui-license.patch 740 BLAKE2B eb5c6d6d8787b5e397e83aae36855349a4721d613bdfd8946f9b0ca430f3d7f503fe4b4bf64eb70df5b4f88ed9caf582166a27f4666bbe9e994ad3ad8b708739 SHA512 df508bc1bf8c4d9df6251b47d7ef3afbbbe600dc30cca582b5811b193c8371a9f3723d7e9e422cb28528e228bb2ee246d8c38c7b0cca3b49bc2972f59a555364 +DIST openmw-0.46.0-floattest.patch 43168 BLAKE2B 060b529fd4cd01f0fc723bb5a00a256b9c1ae4413c7b22581467cce75416e01041c3af22f0215ad9b1c475965a988065e0860c01c1e71d97454b022eec4779ea SHA512 0e165417e9ae047231fdc27b62251b33867f3782c1753f81705c886d6d3a433c8bbc3b4653a2555bc644bad11db9769d4bc2abcc84ca3ab23fabb6b80347bc32 +DIST openmw-0.46.0.tar.gz 5155004 BLAKE2B 8ad94a7fffe5a0739c56c778efe2ec17ef66c312a7fe5caf015cf3cad2bc17d2abe8cdc3f4134049a32fe55c4f4b3f72678d2d0ce1037fd02f6ac753b9d89b2c SHA512 da384aead300552817c0d0ce03515a5ccc95dcab4e02d4c1dd0d6c5f1b01ee01209bbaea74e2d12021e3465e49b051823bb018de39675c5a22c6892893624486 +EBUILD openmw-0.46.0.ebuild 4206 BLAKE2B 766941398d741237a34dfd714733fc8d8b93a501891aedef23ab617e2c8f076315c4c1b9149d0c64732f90d7da96986c91b1d6151602183d27468e20a210d968 SHA512 479a8c45a7de6a85c5cf207f1e42f5f6d0e5294a655de93259dca84c9afb6ab0b3f56c8a75da3988cea8b334df149f0ee1e044ec6e79f6cb4e335396d9441144 +EBUILD openmw-9999.ebuild 3823 BLAKE2B 6cc9a357f3106619194b8fde6984473f3759de8113c6fefcf3cad3ecdee7d39adafb2cd8ee778d9174bdb019623699ae7270aa78b22ae2b8cdd6d338098f180e SHA512 f50a90e4373fb97bdead9f9eea6d3aec8f8a3a3c80efc8776df10f3f35973380ee8ab8f9e32f8066afe9df3892855b83a8f30f01d43c35101c8e5d91fea76621 +MISC metadata.xml 1423 BLAKE2B 6d7f6b2805b52571b305668ff9120318c3f2d87719f8e51e644b555c62ea9aaa4afa0f3a23ff67c8a08e04cacf3bdb3d9f7295985f980c27b57b53aa7b55c5e2 SHA512 31e201da1c43b973a57cf51276022c7e39371210ec2eb505f362cad4e669b5aef1f503e2511473880f2313b91a8f1f128db425f9538f58b7fc52df24ec066feb diff --git a/games-engines/openmw/files/openmw-0.45.0-osg-3.6.5-1.patch b/games-engines/openmw/files/openmw-0.45.0-osg-3.6.5-1.patch deleted file mode 100644 index b47fab28d122..000000000000 --- a/games-engines/openmw/files/openmw-0.45.0-osg-3.6.5-1.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 807f550386a1eac6f7306589a4e4a01e783e65df Mon Sep 17 00:00:00 2001 -From: Alexander Olofsson <ace@haxalot.com> -Date: Thu, 13 Feb 2020 19:15:33 +0100 -Subject: [PATCH] Fix building mwrender/sky with OSG 3.6.5 - -OSG commit aff574b completely replaces the method of doing user-defined -query geometry, removing support for modifying the default geometry. ---- - apps/openmw/mwrender/sky.cpp | 14 ++++++++++++-- - 1 file changed, 12 insertions(+), 2 deletions(-) - -diff --git a/apps/openmw/mwrender/sky.cpp b/apps/openmw/mwrender/sky.cpp -index 3996f472c2..e13f5a7b65 100644 ---- a/apps/openmw/mwrender/sky.cpp -+++ b/apps/openmw/mwrender/sky.cpp -@@ -558,16 +558,22 @@ class Sun : public CelestialBody - osg::ref_ptr<osg::OcclusionQueryNode> oqn = new osg::OcclusionQueryNode; - oqn->setQueriesEnabled(true); - -+#if OSG_VERSION_GREATER_OR_EQUAL(3, 6, 5) -+ // With OSG 3.6.5, the method of providing user defined query geometry has been completely replaced -+ osg::ref_ptr<osg::QueryGeometry> queryGeom = new osg::QueryGeometry(oqn->getName()); -+#else -+ auto* queryGeom = oqn->getQueryGeometry(); -+#endif -+ - // Make it fast! A DYNAMIC query geometry means we can't break frame until the flare is rendered (which is rendered after all the other geometry, - // so that would be pretty bad). STATIC should be safe, since our node's local bounds are static, thus computeBounds() which modifies the queryGeometry - // is only called once. - // Note the debug geometry setDebugDisplay(true) is always DYNAMIC and that can't be changed, not a big deal. -- oqn->getQueryGeometry()->setDataVariance(osg::Object::STATIC); -+ queryGeom->setDataVariance(osg::Object::STATIC); - - // Set up the query geometry to match the actual sun's rendering shape. osg::OcclusionQueryNode wasn't originally intended to allow this, - // normally it would automatically adjust the query geometry to match the sub graph's bounding box. The below hack is needed to - // circumvent this. -- osg::Geometry* queryGeom = oqn->getQueryGeometry(); - queryGeom->setVertexArray(mGeom->getVertexArray()); - queryGeom->setTexCoordArray(0, mGeom->getTexCoordArray(0), osg::Array::BIND_PER_VERTEX); - queryGeom->removePrimitiveSet(0, oqn->getQueryGeometry()->getNumPrimitiveSets()); -@@ -578,6 +584,10 @@ class Sun : public CelestialBody - // Still need a proper bounding sphere. - oqn->setInitialBound(queryGeom->getBound()); - -+#if OSG_VERSION_GREATER_OR_EQUAL(3, 6, 5) -+ oqn->setQueryGeometry(queryGeom.release()); -+#endif -+ - osg::StateSet* queryStateSet = new osg::StateSet; - if (queryVisible) - { diff --git a/games-engines/openmw/files/openmw-0.45.0-osg-3.6.5-2.patch b/games-engines/openmw/files/openmw-0.45.0-osg-3.6.5-2.patch deleted file mode 100644 index 6b13291911ca..000000000000 --- a/games-engines/openmw/files/openmw-0.45.0-osg-3.6.5-2.patch +++ /dev/null @@ -1,21 +0,0 @@ -From 7db58a893a1448b7229de5464696b3cc6eb7663c Mon Sep 17 00:00:00 2001 -From: Alexander Olofsson <ace@haxalot.com> -Date: Thu, 13 Feb 2020 19:32:17 +0100 -Subject: [PATCH] Ensure osg/Version is included - ---- - apps/openmw/mwrender/sky.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/apps/openmw/mwrender/sky.cpp b/apps/openmw/mwrender/sky.cpp -index e13f5a7b65..7cf2af88d0 100644 ---- a/apps/openmw/mwrender/sky.cpp -+++ b/apps/openmw/mwrender/sky.cpp -@@ -16,6 +16,7 @@ - #include <osg/BlendFunc> - #include <osg/AlphaFunc> - #include <osg/PolygonOffset> -+#include <osg/Version> - #include <osg/observer_ptr> - - #include <osgParticle/BoxPlacer> diff --git a/games-engines/openmw/files/openmw-0.46.0-fix-cast.patch b/games-engines/openmw/files/openmw-0.46.0-fix-cast.patch new file mode 100644 index 000000000000..f6e82cb3a2c9 --- /dev/null +++ b/games-engines/openmw/files/openmw-0.46.0-fix-cast.patch @@ -0,0 +1,214 @@ +Fixes build on ~arch system, patch from upstream, to be dropped for 0.47 + +From 208a50340db5506dded60c05272ce9692773baa9 Mon Sep 17 00:00:00 2001 +From: elsid <elsid.mail@gmail.com> +Date: Mon, 13 Apr 2020 20:45:07 +0200 +Subject: [PATCH] Specialize DetourNavigator::ObjectId ctor for pointers + +To fix msvc error: +components\detournavigator\objectid.hpp(14,13): error C2440: 'reinterpret_cast': cannot convert from 'const T' to 'size_t' + with + [ + T=unsigned long + ] +diff --git a/apps/openmw_test_suite/detournavigator/tilecachedrecastmeshmanager.cpp b/apps/openmw_test_suite/detournavigator/tilecachedrecastmeshmanager.cpp +index 5275d9119e..e44ae48786 100644 +--- a/apps/openmw_test_suite/detournavigator/tilecachedrecastmeshmanager.cpp ++++ b/apps/openmw_test_suite/detournavigator/tilecachedrecastmeshmanager.cpp +@@ -61,15 +61,15 @@ namespace + { + TileCachedRecastMeshManager manager(mSettings); + const btBoxShape boxShape(btVector3(20, 20, 100)); +- EXPECT_TRUE(manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground)); ++ EXPECT_TRUE(manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground)); + } + + TEST_F(DetourNavigatorTileCachedRecastMeshManagerTest, add_object_for_existing_object_should_return_false) + { + TileCachedRecastMeshManager manager(mSettings); + const btBoxShape boxShape(btVector3(20, 20, 100)); +- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); +- EXPECT_FALSE(manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground)); ++ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); ++ EXPECT_FALSE(manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground)); + } + + TEST_F(DetourNavigatorTileCachedRecastMeshManagerTest, update_object_for_changed_object_should_return_changed_tiles) +@@ -77,9 +77,9 @@ namespace + TileCachedRecastMeshManager manager(mSettings); + const btBoxShape boxShape(btVector3(20, 20, 100)); + const btTransform transform(btMatrix3x3::getIdentity(), btVector3(getTileSize(mSettings) / mSettings.mRecastScaleFactor, 0, 0)); +- manager.addObject(ObjectId(1ul), boxShape, transform, AreaType::AreaType_ground); ++ manager.addObject(ObjectId(&boxShape), boxShape, transform, AreaType::AreaType_ground); + EXPECT_THAT( +- manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground), ++ manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground), + ElementsAre(TilePosition(-1, -1), TilePosition(-1, 0), TilePosition(0, -1), TilePosition(0, 0), + TilePosition(1, -1), TilePosition(1, 0)) + ); +@@ -89,9 +89,9 @@ namespace + { + TileCachedRecastMeshManager manager(mSettings); + const btBoxShape boxShape(btVector3(20, 20, 100)); +- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); ++ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); + EXPECT_EQ( +- manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground), ++ manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground), + std::vector<TilePosition>() + ); + } +@@ -100,7 +100,7 @@ namespace + { + TileCachedRecastMeshManager manager(mSettings); + const btBoxShape boxShape(btVector3(20, 20, 100)); +- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); ++ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); + EXPECT_NE(manager.getMesh(TilePosition(-1, -1)), nullptr); + EXPECT_NE(manager.getMesh(TilePosition(-1, 0)), nullptr); + EXPECT_NE(manager.getMesh(TilePosition(0, -1)), nullptr); +@@ -111,7 +111,7 @@ namespace + { + TileCachedRecastMeshManager manager(mSettings); + const btBoxShape boxShape(btVector3(20, 20, 100)); +- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); ++ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); + EXPECT_EQ(manager.getMesh(TilePosition(1, 0)), nullptr); + } + +@@ -121,13 +121,13 @@ namespace + const btBoxShape boxShape(btVector3(20, 20, 100)); + const btTransform transform(btMatrix3x3::getIdentity(), btVector3(getTileSize(mSettings) / mSettings.mRecastScaleFactor, 0, 0)); + +- manager.addObject(ObjectId(1ul), boxShape, transform, AreaType::AreaType_ground); ++ manager.addObject(ObjectId(&boxShape), boxShape, transform, AreaType::AreaType_ground); + EXPECT_NE(manager.getMesh(TilePosition(0, -1)), nullptr); + EXPECT_NE(manager.getMesh(TilePosition(0, 0)), nullptr); + EXPECT_NE(manager.getMesh(TilePosition(1, 0)), nullptr); + EXPECT_NE(manager.getMesh(TilePosition(1, -1)), nullptr); + +- manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); ++ manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); + EXPECT_NE(manager.getMesh(TilePosition(-1, -1)), nullptr); + EXPECT_NE(manager.getMesh(TilePosition(-1, 0)), nullptr); + EXPECT_NE(manager.getMesh(TilePosition(0, -1)), nullptr); +@@ -140,11 +140,11 @@ namespace + const btBoxShape boxShape(btVector3(20, 20, 100)); + const btTransform transform(btMatrix3x3::getIdentity(), btVector3(getTileSize(mSettings) / mSettings.mRecastScaleFactor, 0, 0)); + +- manager.addObject(ObjectId(1ul), boxShape, transform, AreaType::AreaType_ground); ++ manager.addObject(ObjectId(&boxShape), boxShape, transform, AreaType::AreaType_ground); + EXPECT_EQ(manager.getMesh(TilePosition(-1, -1)), nullptr); + EXPECT_EQ(manager.getMesh(TilePosition(-1, 0)), nullptr); + +- manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); ++ manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); + EXPECT_EQ(manager.getMesh(TilePosition(1, 0)), nullptr); + EXPECT_EQ(manager.getMesh(TilePosition(1, -1)), nullptr); + } +@@ -153,8 +153,8 @@ namespace + { + TileCachedRecastMeshManager manager(mSettings); + const btBoxShape boxShape(btVector3(20, 20, 100)); +- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); +- manager.removeObject(ObjectId(1ul)); ++ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); ++ manager.removeObject(ObjectId(&boxShape)); + EXPECT_EQ(manager.getMesh(TilePosition(-1, -1)), nullptr); + EXPECT_EQ(manager.getMesh(TilePosition(-1, 0)), nullptr); + EXPECT_EQ(manager.getMesh(TilePosition(0, -1)), nullptr); +@@ -166,13 +166,13 @@ namespace + TileCachedRecastMeshManager manager(mSettings); + const btBoxShape boxShape(btVector3(20, 20, 100)); + +- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); ++ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); + EXPECT_NE(manager.getMesh(TilePosition(-1, -1)), nullptr); + EXPECT_NE(manager.getMesh(TilePosition(-1, 0)), nullptr); + EXPECT_NE(manager.getMesh(TilePosition(0, -1)), nullptr); + EXPECT_NE(manager.getMesh(TilePosition(0, 0)), nullptr); + +- manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); ++ manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); + EXPECT_NE(manager.getMesh(TilePosition(-1, -1)), nullptr); + EXPECT_NE(manager.getMesh(TilePosition(-1, 0)), nullptr); + EXPECT_NE(manager.getMesh(TilePosition(0, -1)), nullptr); +@@ -184,7 +184,7 @@ namespace + TileCachedRecastMeshManager manager(mSettings); + const auto initialRevision = manager.getRevision(); + const btBoxShape boxShape(btVector3(20, 20, 100)); +- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); ++ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); + EXPECT_EQ(manager.getRevision(), initialRevision + 1); + } + +@@ -192,9 +192,9 @@ namespace + { + TileCachedRecastMeshManager manager(mSettings); + const btBoxShape boxShape(btVector3(20, 20, 100)); +- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); ++ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); + const auto beforeAddRevision = manager.getRevision(); +- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); ++ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); + EXPECT_EQ(manager.getRevision(), beforeAddRevision); + } + +@@ -203,9 +203,9 @@ namespace + TileCachedRecastMeshManager manager(mSettings); + const btBoxShape boxShape(btVector3(20, 20, 100)); + const btTransform transform(btMatrix3x3::getIdentity(), btVector3(getTileSize(mSettings) / mSettings.mRecastScaleFactor, 0, 0)); +- manager.addObject(ObjectId(1ul), boxShape, transform, AreaType::AreaType_ground); ++ manager.addObject(ObjectId(&boxShape), boxShape, transform, AreaType::AreaType_ground); + const auto beforeUpdateRevision = manager.getRevision(); +- manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); ++ manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); + EXPECT_EQ(manager.getRevision(), beforeUpdateRevision + 1); + } + +@@ -213,9 +213,9 @@ namespace + { + TileCachedRecastMeshManager manager(mSettings); + const btBoxShape boxShape(btVector3(20, 20, 100)); +- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); ++ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); + const auto beforeUpdateRevision = manager.getRevision(); +- manager.updateObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); ++ manager.updateObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); + EXPECT_EQ(manager.getRevision(), beforeUpdateRevision); + } + +@@ -223,9 +223,9 @@ namespace + { + TileCachedRecastMeshManager manager(mSettings); + const btBoxShape boxShape(btVector3(20, 20, 100)); +- manager.addObject(ObjectId(1ul), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); ++ manager.addObject(ObjectId(&boxShape), boxShape, btTransform::getIdentity(), AreaType::AreaType_ground); + const auto beforeRemoveRevision = manager.getRevision(); +- manager.removeObject(ObjectId(1ul)); ++ manager.removeObject(ObjectId(&boxShape)); + EXPECT_EQ(manager.getRevision(), beforeRemoveRevision + 1); + } + +@@ -233,7 +233,7 @@ namespace + { + TileCachedRecastMeshManager manager(mSettings); + const auto beforeRemoveRevision = manager.getRevision(); +- manager.removeObject(ObjectId(1ul)); ++ manager.removeObject(ObjectId(&manager)); + EXPECT_EQ(manager.getRevision(), beforeRemoveRevision); + } + } +diff --git a/components/detournavigator/objectid.hpp b/components/detournavigator/objectid.hpp +index 3b56924b13..6ddcc9169d 100644 +--- a/components/detournavigator/objectid.hpp ++++ b/components/detournavigator/objectid.hpp +@@ -10,7 +10,7 @@ namespace DetourNavigator + { + public: + template <class T> +- explicit ObjectId(const T value) throw() ++ explicit ObjectId(T* value) throw() + : mValue(reinterpret_cast<std::size_t>(value)) + { + } diff --git a/games-engines/openmw/files/openmw-0.46.0-floattest2.patch b/games-engines/openmw/files/openmw-0.46.0-floattest2.patch new file mode 100644 index 000000000000..ca6e355eab7d --- /dev/null +++ b/games-engines/openmw/files/openmw-0.46.0-floattest2.patch @@ -0,0 +1,139 @@ +https://gitlab.com/OpenMW/openmw/-/merge_requests/253 + +--- a/apps/openmw_test_suite/detournavigator/navigator.cpp 2020-06-30 16:07:31.544410916 +0100 ++++ b/apps/openmw_test_suite/detournavigator/navigator.cpp 2020-06-30 16:08:50.405698937 +0100 +@@ -458,25 +458,25 @@ + + EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_swim, mAreaCosts, mOut), Status::Success); + +- EXPECT_EQ(mPath, std::deque<osg::Vec3f>({ +- osg::Vec3f(0, 215, 185.33331298828125), +- osg::Vec3f(0, 186.6666717529296875, 185.33331298828125), +- osg::Vec3f(0, 158.333343505859375, 185.33331298828125), +- osg::Vec3f(0, 130.0000152587890625, 185.33331298828125), +- osg::Vec3f(0, 101.66667938232421875, 185.33331298828125), +- osg::Vec3f(0, 73.333343505859375, 185.33331298828125), +- osg::Vec3f(0, 45.0000152587890625, 185.33331298828125), +- osg::Vec3f(0, 16.6666812896728515625, 185.33331298828125), +- osg::Vec3f(0, -11.66664981842041015625, 185.33331298828125), +- osg::Vec3f(0, -39.999980926513671875, 185.33331298828125), +- osg::Vec3f(0, -68.33331298828125, 185.33331298828125), +- osg::Vec3f(0, -96.66664886474609375, 185.33331298828125), +- osg::Vec3f(0, -124.99997711181640625, 185.33331298828125), +- osg::Vec3f(0, -153.33331298828125, 185.33331298828125), +- osg::Vec3f(0, -181.6666412353515625, 185.33331298828125), +- osg::Vec3f(0, -209.999969482421875, 185.33331298828125), +- osg::Vec3f(0, -215, 185.33331298828125), +- })) << mPath; ++ EXPECT_THAT(mPath, ElementsAre( ++ Vec3fEq(0, 215, 185.33331298828125), ++ Vec3fEq(0, 186.6666717529296875, 185.33331298828125), ++ Vec3fEq(0, 158.333343505859375, 185.33331298828125), ++ Vec3fEq(0, 130.0000152587890625, 185.33331298828125), ++ Vec3fEq(0, 101.66667938232421875, 185.33331298828125), ++ Vec3fEq(0, 73.333343505859375, 185.33331298828125), ++ Vec3fEq(0, 45.0000152587890625, 185.33331298828125), ++ Vec3fEq(0, 16.6666812896728515625, 185.33331298828125), ++ Vec3fEq(0, -11.66664981842041015625, 185.33331298828125), ++ Vec3fEq(0, -39.999980926513671875, 185.33331298828125), ++ Vec3fEq(0, -68.33331298828125, 185.33331298828125), ++ Vec3fEq(0, -96.66664886474609375, 185.33331298828125), ++ Vec3fEq(0, -124.99997711181640625, 185.33331298828125), ++ Vec3fEq(0, -153.33331298828125, 185.33331298828125), ++ Vec3fEq(0, -181.6666412353515625, 185.33331298828125), ++ Vec3fEq(0, -209.999969482421875, 185.33331298828125), ++ Vec3fEq(0, -215, 185.33331298828125) ++ )); + } + + TEST_F(DetourNavigatorNavigatorTest, path_should_be_over_water_when_ground_cross_water_with_swim_and_walk_flags) +@@ -505,25 +505,25 @@ + EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_swim | Flag_walk, mAreaCosts, mOut), + Status::Success); + +- EXPECT_EQ(mPath, std::deque<osg::Vec3f>({ +- osg::Vec3f(0, 215, -94.75363922119140625), +- osg::Vec3f(0, 186.6666717529296875, -106.0000152587890625), +- osg::Vec3f(0, 158.333343505859375, -115.85507965087890625), +- osg::Vec3f(0, 130.0000152587890625, -125.71016693115234375), +- osg::Vec3f(0, 101.66667938232421875, -135.5652313232421875), +- osg::Vec3f(0, 73.333343505859375, -143.3333587646484375), +- osg::Vec3f(0, 45.0000152587890625, -143.3333587646484375), +- osg::Vec3f(0, 16.6666812896728515625, -143.3333587646484375), +- osg::Vec3f(0, -11.66664981842041015625, -143.3333587646484375), +- osg::Vec3f(0, -39.999980926513671875, -143.3333587646484375), +- osg::Vec3f(0, -68.33331298828125, -143.3333587646484375), +- osg::Vec3f(0, -96.66664886474609375, -137.3043670654296875), +- osg::Vec3f(0, -124.99997711181640625, -127.44930267333984375), +- osg::Vec3f(0, -153.33331298828125, -117.59423065185546875), +- osg::Vec3f(0, -181.6666412353515625, -107.73915863037109375), +- osg::Vec3f(0, -209.999969482421875, -97.7971343994140625), +- osg::Vec3f(0, -215, -94.75363922119140625), +- })) << mPath; ++ EXPECT_THAT(mPath, ElementsAre( ++ Vec3fEq(0, 215, -94.75363922119140625), ++ Vec3fEq(0, 186.6666717529296875, -106.0000152587890625), ++ Vec3fEq(0, 158.333343505859375, -115.85507965087890625), ++ Vec3fEq(0, 130.0000152587890625, -125.71016693115234375), ++ Vec3fEq(0, 101.66667938232421875, -135.5652313232421875), ++ Vec3fEq(0, 73.333343505859375, -143.3333587646484375), ++ Vec3fEq(0, 45.0000152587890625, -143.3333587646484375), ++ Vec3fEq(0, 16.6666812896728515625, -143.3333587646484375), ++ Vec3fEq(0, -11.66664981842041015625, -143.3333587646484375), ++ Vec3fEq(0, -39.999980926513671875, -143.3333587646484375), ++ Vec3fEq(0, -68.33331298828125, -143.3333587646484375), ++ Vec3fEq(0, -96.66664886474609375, -137.3043670654296875), ++ Vec3fEq(0, -124.99997711181640625, -127.44930267333984375), ++ Vec3fEq(0, -153.33331298828125, -117.59423065185546875), ++ Vec3fEq(0, -181.6666412353515625, -107.73915863037109375), ++ Vec3fEq(0, -209.999969482421875, -97.7971343994140625), ++ Vec3fEq(0, -215, -94.75363922119140625) ++ )); + } + + TEST_F(DetourNavigatorNavigatorTest, path_should_be_over_water_when_ground_cross_water_with_max_int_cells_size_and_swim_and_walk_flags) +@@ -552,25 +552,25 @@ + EXPECT_EQ(mNavigator->findPath(mAgentHalfExtents, mStepSize, mStart, mEnd, Flag_swim | Flag_walk, mAreaCosts, mOut), + Status::Success); + +- EXPECT_EQ(mPath, std::deque<osg::Vec3f>({ +- osg::Vec3f(0, 215, -94.75363922119140625), +- osg::Vec3f(0, 186.6666717529296875, -106.0000152587890625), +- osg::Vec3f(0, 158.333343505859375, -115.85507965087890625), +- osg::Vec3f(0, 130.0000152587890625, -125.71016693115234375), +- osg::Vec3f(0, 101.66667938232421875, -135.5652313232421875), +- osg::Vec3f(0, 73.333343505859375, -143.3333587646484375), +- osg::Vec3f(0, 45.0000152587890625, -143.3333587646484375), +- osg::Vec3f(0, 16.6666812896728515625, -143.3333587646484375), +- osg::Vec3f(0, -11.66664981842041015625, -143.3333587646484375), +- osg::Vec3f(0, -39.999980926513671875, -143.3333587646484375), +- osg::Vec3f(0, -68.33331298828125, -143.3333587646484375), +- osg::Vec3f(0, -96.66664886474609375, -137.3043670654296875), +- osg::Vec3f(0, -124.99997711181640625, -127.44930267333984375), +- osg::Vec3f(0, -153.33331298828125, -117.59423065185546875), +- osg::Vec3f(0, -181.6666412353515625, -107.73915863037109375), +- osg::Vec3f(0, -209.999969482421875, -97.7971343994140625), +- osg::Vec3f(0, -215, -94.75363922119140625), +- })) << mPath; ++ EXPECT_THAT(mPath, ElementsAre( ++ Vec3fEq(0, 215, -94.75363922119140625), ++ Vec3fEq(0, 186.6666717529296875, -106.0000152587890625), ++ Vec3fEq(0, 158.333343505859375, -115.85507965087890625), ++ Vec3fEq(0, 130.0000152587890625, -125.71016693115234375), ++ Vec3fEq(0, 101.66667938232421875, -135.5652313232421875), ++ Vec3fEq(0, 73.333343505859375, -143.3333587646484375), ++ Vec3fEq(0, 45.0000152587890625, -143.3333587646484375), ++ Vec3fEq(0, 16.6666812896728515625, -143.3333587646484375), ++ Vec3fEq(0, -11.66664981842041015625, -143.3333587646484375), ++ Vec3fEq(0, -39.999980926513671875, -143.3333587646484375), ++ Vec3fEq(0, -68.33331298828125, -143.3333587646484375), ++ Vec3fEq(0, -96.66664886474609375, -137.3043670654296875), ++ Vec3fEq(0, -124.99997711181640625, -127.44930267333984375), ++ Vec3fEq(0, -153.33331298828125, -117.59423065185546875), ++ Vec3fEq(0, -181.6666412353515625, -107.73915863037109375), ++ Vec3fEq(0, -209.999969482421875, -97.7971343994140625), ++ Vec3fEq(0, -215, -94.75363922119140625) ++ )); + } + + TEST_F(DetourNavigatorNavigatorTest, path_should_be_over_ground_when_ground_cross_water_with_only_walk_flag) diff --git a/games-engines/openmw/files/openmw-0.46.0-missing-include.patch b/games-engines/openmw/files/openmw-0.46.0-missing-include.patch new file mode 100644 index 000000000000..803707498e43 --- /dev/null +++ b/games-engines/openmw/files/openmw-0.46.0-missing-include.patch @@ -0,0 +1,19 @@ +Fixes build on ~arch system, patch from upstream, to be dropped for 0.47 + +From 10daadefbea1f62a818c339dc7f3d69a858bc8a6 Mon Sep 17 00:00:00 2001 +From: elsid <elsid.mail@gmail.com> +Date: Thu, 30 Apr 2020 21:57:22 +0200 +Subject: [PATCH] Add missing include + +diff --git a/components/detournavigator/offmeshconnectionsmanager.hpp b/components/detournavigator/offmeshconnectionsmanager.hpp +index 30d7976aec..155ce32963 100644 +--- a/components/detournavigator/offmeshconnectionsmanager.hpp ++++ b/components/detournavigator/offmeshconnectionsmanager.hpp +@@ -13,6 +13,7 @@ + + #include <boost/optional.hpp> + ++#include <algorithm> + #include <map> + #include <mutex> + #include <unordered_map> diff --git a/games-engines/openmw/files/openmw-0.46.0-mygui-license.patch b/games-engines/openmw/files/openmw-0.46.0-mygui-license.patch new file mode 100644 index 000000000000..a14f58bc9e79 --- /dev/null +++ b/games-engines/openmw/files/openmw-0.46.0-mygui-license.patch @@ -0,0 +1,16 @@ +We don't install license files + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d69352c94..5f97c86e9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -470,9 +470,6 @@ IF(NOT WIN32 AND NOT APPLE) + # INSTALL(PROGRAMS "${OpenMW_BINARY_DIR}/Plugin_MyGUI_OpenMW_Resources.so" DESTINATION "${LIBDIR}" ) + #ENDIF(BUILD_MYGUI_PLUGIN) + +- # Install licenses +- INSTALL(FILES "files/mygui/DejaVu Font License.txt" DESTINATION "${LICDIR}" ) +- + # Install icon and desktop file + INSTALL(FILES "${OpenMW_BINARY_DIR}/org.openmw.launcher.desktop" DESTINATION "${DATAROOTDIR}/applications" COMPONENT "openmw") + INSTALL(FILES "${OpenMW_SOURCE_DIR}/files/launcher/images/openmw.png" DESTINATION "${ICONDIR}" COMPONENT "openmw") diff --git a/games-engines/openmw/files/openmw-0.46.0-nifbullet-test.patch b/games-engines/openmw/files/openmw-0.46.0-nifbullet-test.patch new file mode 100644 index 000000000000..315b0753589d --- /dev/null +++ b/games-engines/openmw/files/openmw-0.46.0-nifbullet-test.patch @@ -0,0 +1,335 @@ +Fixes test on i686 system, patch from upstream, to be dropped for 0.47 + +From 14d0ca4cd3e9aa9e329590913d5f8fb55077587d Mon Sep 17 00:00:00 2001 +From: elsid <elsid.mail@gmail.com> +Date: Sun, 25 Nov 2018 11:42:26 +0300 +Subject: [PATCH 1/4] Cast float to btScalar + +--- + .../detournavigator/recastmeshbuilder.cpp | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +diff --git a/components/detournavigator/recastmeshbuilder.cpp b/components/detournavigator/recastmeshbuilder.cpp +index d96ba2f29c..f613683571 100644 +--- a/components/detournavigator/recastmeshbuilder.cpp ++++ b/components/detournavigator/recastmeshbuilder.cpp +@@ -163,15 +163,15 @@ namespace DetourNavigator + + transformBoundingBox(transform, aabbMin, aabbMax); + +- aabbMin.setX(std::max(mBounds.mMin.x(), aabbMin.x())); +- aabbMin.setX(std::min(mBounds.mMax.x(), aabbMin.x())); +- aabbMin.setY(std::max(mBounds.mMin.y(), aabbMin.y())); +- aabbMin.setY(std::min(mBounds.mMax.y(), aabbMin.y())); +- +- aabbMax.setX(std::max(mBounds.mMin.x(), aabbMax.x())); +- aabbMax.setX(std::min(mBounds.mMax.x(), aabbMax.x())); +- aabbMax.setY(std::max(mBounds.mMin.y(), aabbMax.y())); +- aabbMax.setY(std::min(mBounds.mMax.y(), aabbMax.y())); ++ aabbMin.setX(std::max(static_cast<btScalar>(mBounds.mMin.x()), aabbMin.x())); ++ aabbMin.setX(std::min(static_cast<btScalar>(mBounds.mMax.x()), aabbMin.x())); ++ aabbMin.setY(std::max(static_cast<btScalar>(mBounds.mMin.y()), aabbMin.y())); ++ aabbMin.setY(std::min(static_cast<btScalar>(mBounds.mMax.y()), aabbMin.y())); ++ ++ aabbMax.setX(std::max(static_cast<btScalar>(mBounds.mMin.x()), aabbMax.x())); ++ aabbMax.setX(std::min(static_cast<btScalar>(mBounds.mMax.x()), aabbMax.x())); ++ aabbMax.setY(std::max(static_cast<btScalar>(mBounds.mMin.y()), aabbMax.y())); ++ aabbMax.setY(std::min(static_cast<btScalar>(mBounds.mMax.y()), aabbMax.y())); + + transformBoundingBox(transform.inverse(), aabbMin, aabbMax); + + +From ef5a5ef43f9a91795339ef3ea97c505c1e9dc28d Mon Sep 17 00:00:00 2001 +From: elsid <elsid.mail@gmail.com> +Date: Sun, 25 Nov 2018 14:03:28 +0300 +Subject: [PATCH 2/4] Print not matched values with full precision + +--- + .../detournavigator/operators.hpp | 62 +++++++++++++++---- + 1 file changed, 51 insertions(+), 11 deletions(-) + +diff --git a/apps/openmw_test_suite/detournavigator/operators.hpp b/apps/openmw_test_suite/detournavigator/operators.hpp +index a473632bab..e34d6278a7 100644 +--- a/apps/openmw_test_suite/detournavigator/operators.hpp ++++ b/apps/openmw_test_suite/detournavigator/operators.hpp +@@ -20,22 +20,62 @@ namespace DetourNavigator + } + } + ++namespace ++{ ++ template <class T> ++ struct Wrapper { ++ const T& mValue; ++ }; ++ ++ template <class Range> ++ inline testing::Message& writeRange(testing::Message& message, const Range& range) ++ { ++ message << "{\n"; ++ for (const auto& v : range) ++ message << Wrapper<typename std::decay<decltype(v)>::type> {v} << ",\n"; ++ return message << "}"; ++ } ++} ++ + namespace testing + { ++ template <> ++ inline testing::Message& Message::operator <<(const osg::Vec3f& value) ++ { ++ return (*this) << "osg::Vec3f(" << std::setprecision(std::numeric_limits<float>::max_exponent10) << value.x() ++ << ", " << std::setprecision(std::numeric_limits<float>::max_exponent10) << value.y() ++ << ", " << std::setprecision(std::numeric_limits<float>::max_exponent10) << value.z() ++ << ')'; ++ } ++ ++ template <> ++ inline testing::Message& Message::operator <<(const Wrapper<osg::Vec3f>& value) ++ { ++ return (*this) << value.mValue; ++ } ++ ++ template <> ++ inline testing::Message& Message::operator <<(const Wrapper<float>& value) ++ { ++ return (*this) << std::setprecision(std::numeric_limits<float>::max_exponent10) << value.mValue; ++ } ++ + template <> + inline testing::Message& Message::operator <<(const std::deque<osg::Vec3f>& value) + { +- (*this) << "{\n"; +- for (const auto& v : value) +- { +- std::ostringstream stream; +- stream << "osg::Vec3f(" +- << std::setprecision(std::numeric_limits<float>::max_exponent10) << v.x() << ", " +- << std::setprecision(std::numeric_limits<float>::max_exponent10) << v.y() << ", " +- << std::setprecision(std::numeric_limits<float>::max_exponent10) << v.z() << ")"; +- (*this) << stream.str() << ",\n"; +- } +- return (*this) << "}"; ++ return writeRange(*this, value); ++ } ++ ++ template <> ++ inline testing::Message& Message::operator <<(const std::vector<osg::Vec3f>& value) ++ { ++ return writeRange(*this, value); ++ } ++ ++ template <> ++ inline testing::Message& Message::operator <<(const std::vector<float>& value) ++ { ++ return writeRange(*this, value); + } + } + + +From 2d7c3bae6127fc3717d5e3a8e8830215450fb47f Mon Sep 17 00:00:00 2001 +From: elsid <elsid.mail@gmail.com> +Date: Sun, 25 Nov 2018 11:46:09 +0300 +Subject: [PATCH 3/4] Support bullet with double precision + +--- + apps/openmw/mwphysics/heightfield.cpp | 38 ++++++++++++++++++- + apps/openmw/mwphysics/heightfield.hpp | 5 +++ + .../detournavigator/recastmeshbuilder.cpp | 4 +- + .../nifloader/testbulletnifloader.cpp | 36 ++++++++++++++++-- + 4 files changed, 77 insertions(+), 6 deletions(-) + +diff --git a/apps/openmw/mwphysics/heightfield.cpp b/apps/openmw/mwphysics/heightfield.cpp +index 52aed9c072..e1448116bf 100644 +--- a/apps/openmw/mwphysics/heightfield.cpp ++++ b/apps/openmw/mwphysics/heightfield.cpp +@@ -7,12 +7,48 @@ + + #include <LinearMath/btTransform.h> + ++#include <type_traits> ++ ++namespace ++{ ++ template <class T> ++ auto makeHeights(const T* heights, float sqrtVerts) ++ -> std::enable_if_t<std::is_same<btScalar, T>::value, std::vector<btScalar>> ++ { ++ return {}; ++ } ++ ++ template <class T> ++ auto makeHeights(const T* heights, float sqrtVerts) ++ -> std::enable_if_t<!std::is_same<btScalar, T>::value, std::vector<btScalar>> ++ { ++ return std::vector<btScalar>(heights, heights + static_cast<std::ptrdiff_t>(sqrtVerts * sqrtVerts)); ++ } ++ ++ template <class T> ++ auto getHeights(const T* floatHeights, const std::vector<btScalar>&) ++ -> std::enable_if_t<std::is_same<btScalar, T>::value, const btScalar*> ++ { ++ return floatHeights; ++ } ++ ++ template <class T> ++ auto getHeights(const T*, const std::vector<btScalar>& btScalarHeights) ++ -> std::enable_if_t<!std::is_same<btScalar, T>::value, const btScalar*> ++ { ++ return btScalarHeights.data(); ++ } ++} ++ + namespace MWPhysics + { + HeightField::HeightField(const float* heights, int x, int y, float triSize, float sqrtVerts, float minH, float maxH, const osg::Object* holdObject) ++ : mHeights(makeHeights(heights, sqrtVerts)) + { + mShape = new btHeightfieldTerrainShape( +- sqrtVerts, sqrtVerts, heights, 1, ++ sqrtVerts, sqrtVerts, ++ getHeights(heights, mHeights), ++ 1, + minH, maxH, 2, + PHY_FLOAT, false + ); +diff --git a/apps/openmw/mwphysics/heightfield.hpp b/apps/openmw/mwphysics/heightfield.hpp +index f248186db3..2ba58afff8 100644 +--- a/apps/openmw/mwphysics/heightfield.hpp ++++ b/apps/openmw/mwphysics/heightfield.hpp +@@ -3,6 +3,10 @@ + + #include <osg/ref_ptr> + ++#include <LinearMath/btScalar.h> ++ ++#include <vector> ++ + class btCollisionObject; + class btHeightfieldTerrainShape; + +@@ -27,6 +31,7 @@ namespace MWPhysics + btHeightfieldTerrainShape* mShape; + btCollisionObject* mCollisionObject; + osg::ref_ptr<const osg::Object> mHoldObject; ++ std::vector<btScalar> mHeights; + + void operator=(const HeightField&); + HeightField(const HeightField&); +diff --git a/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp b/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp +index 6c474765de..c86dee6e55 100644 +--- a/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp ++++ b/apps/openmw_test_suite/detournavigator/recastmeshbuilder.cpp +@@ -363,11 +363,11 @@ namespace + AreaType_ground + ); + const auto recastMesh = builder.create(mGeneration, mRevision); +- EXPECT_EQ(recastMesh->getVertices(), std::vector<float>({ ++ EXPECT_THAT(recastMesh->getVertices(), Pointwise(FloatNear(1e-5), std::vector<float>({ + 1.41421353816986083984375, 0, 1.1920928955078125e-07, + -1.41421353816986083984375, 0, -1.1920928955078125e-07, + 1.1920928955078125e-07, 0, -1.41421353816986083984375, +- })); ++ }))); + EXPECT_EQ(recastMesh->getIndices(), std::vector<int>({0, 1, 2})); + EXPECT_EQ(recastMesh->getAreaTypes(), std::vector<AreaType>({AreaType_ground})); + } +diff --git a/apps/openmw_test_suite/nifloader/testbulletnifloader.cpp b/apps/openmw_test_suite/nifloader/testbulletnifloader.cpp +index 36f2512462..6ec94fd68f 100644 +--- a/apps/openmw_test_suite/nifloader/testbulletnifloader.cpp ++++ b/apps/openmw_test_suite/nifloader/testbulletnifloader.cpp +@@ -9,6 +9,8 @@ + #include <gtest/gtest.h> + #include <gmock/gmock.h> + ++#include <algorithm> ++ + namespace + { + template <class T> +@@ -30,6 +32,34 @@ namespace + shape.processAllTriangles(&callback, aabbMin, aabbMax); + return result; + } ++ ++ bool isNear(btScalar lhs, btScalar rhs) ++ { ++ return std::abs(lhs - rhs) <= 1e-5; ++ } ++ ++ bool isNear(const btVector3& lhs, const btVector3& rhs) ++ { ++ return std::equal( ++ static_cast<const btScalar*>(lhs), ++ static_cast<const btScalar*>(lhs) + 3, ++ static_cast<const btScalar*>(rhs), ++ [] (btScalar lhs, btScalar rhs) { return isNear(lhs, rhs); } ++ ); ++ } ++ ++ bool isNear(const btMatrix3x3& lhs, const btMatrix3x3& rhs) ++ { ++ for (int i = 0; i < 3; ++i) ++ if (!isNear(lhs[i], rhs[i])) ++ return false; ++ return true; ++ } ++ ++ bool isNear(const btTransform& lhs, const btTransform& rhs) ++ { ++ return isNear(lhs.getOrigin(), rhs.getOrigin()) && isNear(lhs.getBasis(), rhs.getBasis()); ++ } + } + + static std::ostream& operator <<(std::ostream& stream, const btVector3& value) +@@ -157,7 +187,7 @@ static bool operator ==(const btCompoundShape& lhs, const btCompoundShape& rhs) + for (int i = 0; i < lhs.getNumChildShapes(); ++i) + { + if (!compareObjects(lhs.getChildShape(i), rhs.getChildShape(i)) +- || !(lhs.getChildTransform(i) == rhs.getChildTransform(i))) ++ || !isNear(lhs.getChildTransform(i), rhs.getChildTransform(i))) + return false; + } + return true; +@@ -165,13 +195,13 @@ static bool operator ==(const btCompoundShape& lhs, const btCompoundShape& rhs) + + static bool operator ==(const btBoxShape& lhs, const btBoxShape& rhs) + { +- return lhs.getLocalScaling() == rhs.getLocalScaling() ++ return isNear(lhs.getLocalScaling(), rhs.getLocalScaling()) + && lhs.getHalfExtentsWithoutMargin() == rhs.getHalfExtentsWithoutMargin(); + } + + static bool operator ==(const btBvhTriangleMeshShape& lhs, const btBvhTriangleMeshShape& rhs) + { +- return lhs.getLocalScaling() == rhs.getLocalScaling() ++ return isNear(lhs.getLocalScaling(), rhs.getLocalScaling()) + && lhs.usesQuantizedAabbCompression() == rhs.usesQuantizedAabbCompression() + && lhs.getOwnsBvh() == rhs.getOwnsBvh() + && getTriangles(lhs) == getTriangles(rhs); + +From 66da72048a5893bc8c9b20f6f7210fd45b6a74bf Mon Sep 17 00:00:00 2001 +From: elsid <elsid.mail@gmail.com> +Date: Wed, 20 Feb 2019 23:41:16 +0300 +Subject: [PATCH 4/4] Update bullet for windows up to 2.87 + +--- + CI/before_script.msvc.sh | 12 ++++++------ + appveyor.yml | 4 ++-- + 2 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/appveyor.yml b/appveyor.yml +index 3057cc7257..e2c13ed948 100644 +--- a/appveyor.yml ++++ b/appveyor.yml +@@ -30,8 +30,8 @@ configuration: + clone_depth: 1 + + cache: +- - C:\projects\openmw\deps\Bullet-2.86-msvc2015-win32.7z +- - C:\projects\openmw\deps\Bullet-2.86-msvc2015-win64.7z ++ - C:\projects\openmw\deps\Bullet-2.87-msvc2015-win32.7z ++ - C:\projects\openmw\deps\Bullet-2.87-msvc2015-win64.7z + - C:\projects\openmw\deps\MyGUI-3.2.2-msvc2015-win32.7z + - C:\projects\openmw\deps\MyGUI-3.2.2-msvc2015-win64.7z + - C:\projects\openmw\deps\OSG-3.4.1-scrawl-msvc2015-win32.7z diff --git a/games-engines/openmw/files/openmw-0.46.0-recastnavigation.patch b/games-engines/openmw/files/openmw-0.46.0-recastnavigation.patch new file mode 100644 index 000000000000..ea3242d73ca8 --- /dev/null +++ b/games-engines/openmw/files/openmw-0.46.0-recastnavigation.patch @@ -0,0 +1,24 @@ +Use system recastnavigation instead of bundled one + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d69352c94..cfb53dc5b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -596,7 +596,16 @@ endif(WIN32) + # Extern + set(RECASTNAVIGATION_STATIC ON CACHE BOOL "Build recastnavigation static libraries") + +-add_subdirectory (extern/recastnavigation EXCLUDE_FROM_ALL) ++add_library(RecastNavigation::DebugUtils SHARED IMPORTED) ++add_library(RecastNavigation::Detour SHARED IMPORTED) ++add_library(RecastNavigation::Recast SHARED IMPORTED) ++set_target_properties(RecastNavigation::DebugUtils PROPERTIES ++ IMPORTED_LOCATION GENTOO_RECAST_LIBDIR/libDebugUtils.so) ++set_target_properties(RecastNavigation::Detour PROPERTIES ++ IMPORTED_LOCATION GENTOO_RECAST_LIBDIR/libDetour.so) ++set_target_properties(RecastNavigation::Recast PROPERTIES ++ IMPORTED_LOCATION GENTOO_RECAST_LIBDIR/libRecast.so) ++ + add_subdirectory (extern/osg-ffmpeg-videoplayer) + add_subdirectory (extern/oics) + if (BUILD_OPENCS) diff --git a/games-engines/openmw/files/openmw-0.47.0-mygui-license.patch b/games-engines/openmw/files/openmw-0.47.0-mygui-license.patch new file mode 100644 index 000000000000..d0da8a2563b3 --- /dev/null +++ b/games-engines/openmw/files/openmw-0.47.0-mygui-license.patch @@ -0,0 +1,16 @@ +We don't install license files + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d69352c94..5f97c86e9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -470,9 +470,6 @@ IF(NOT WIN32 AND NOT APPLE) + # INSTALL(PROGRAMS "${OpenMW_BINARY_DIR}/Plugin_MyGUI_OpenMW_Resources.so" DESTINATION "${LIBDIR}" ) + #ENDIF(BUILD_MYGUI_PLUGIN) + +- # Install licenses +- INSTALL(FILES "files/mygui/DejaVuFontLicense.txt" DESTINATION "${LICDIR}" ) +- + # Install icon and desktop file + INSTALL(FILES "${OpenMW_BINARY_DIR}/org.openmw.launcher.desktop" DESTINATION "${DATAROOTDIR}/applications" COMPONENT "openmw") + INSTALL(FILES "${OpenMW_SOURCE_DIR}/files/launcher/images/openmw.png" DESTINATION "${ICONDIR}" COMPONENT "openmw") diff --git a/games-engines/openmw/metadata.xml b/games-engines/openmw/metadata.xml index 9927592a87fe..d1fe5ab9e392 100644 --- a/games-engines/openmw/metadata.xml +++ b/games-engines/openmw/metadata.xml @@ -16,12 +16,14 @@ <use> <flag name="devtools">Install development tools like bsatool, esmtool and opencs.</flag> + <flag name="osg-fork">Use OpenSceneGraph forked by OpenMW instead of upstream OSG.</flag> </use> <upstream> <changelog>https://github.com/OpenMW/openmw/releases</changelog> <doc lang="en">https://wiki.openmw.org</doc> <bugs-to>https://bugs.openmw.org/</bugs-to> <remote-id type="github">OpenMW/openmw</remote-id> + <remote-id type="gitlab">OpenMW/openmw</remote-id> </upstream> <longdescription lang="en"> OpenMW is a new and modern engine based on the one that runs the 2002 diff --git a/games-engines/openmw/openmw-0.45.0.ebuild b/games-engines/openmw/openmw-0.46.0.ebuild index 60c87d4697f3..abb4174bc5fe 100644 --- a/games-engines/openmw/openmw-0.45.0.ebuild +++ b/games-engines/openmw/openmw-0.46.0.ebuild @@ -3,23 +3,34 @@ EAPI=7 -inherit cmake xdg-utils readme.gentoo-r1 +inherit cmake flag-o-matic xdg-utils readme.gentoo-r1 DESCRIPTION="Open source reimplementation of TES III: Morrowind" -HOMEPAGE="https://openmw.org/" -SRC_URI="https://github.com/OpenMW/openmw/archive/${P}.tar.gz" +HOMEPAGE="https://openmw.org/ https://gitlab.com/OpenMW/openmw" + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/OpenMW/openmw.git" +else + SRC_URI=" + https://github.com/OpenMW/openmw/archive/${P}.tar.gz + https://gitlab.com/OpenMW/openmw/-/merge_requests/163.patch -> ${P}-floattest.patch + " + KEYWORDS="~amd64 ~x86" + S="${WORKDIR}/${PN}-${P}" +fi LICENSE="GPL-3 MIT BitstreamVera ZLIB" SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="doc devtools +qt5" +IUSE="doc devtools +osg-fork test +qt5" +RESTRICT="!test? ( test )" # FIXME: Unbundle dev-games/openscenegraph-qt in extern/osgQt directory, # used when BUILD_OPENCS flag is enabled. See bug #676266. RDEPEND=" dev-games/mygui - >=dev-games/openscenegraph-3.5.5:=[ffmpeg,jpeg,png,sdl,svg,truetype,zlib] + dev-games/recastnavigation dev-libs/boost:=[threads] dev-libs/tinyxml[stl] media-libs/libsdl2[joystick,opengl,video] @@ -27,6 +38,8 @@ RDEPEND=" media-video/ffmpeg:= >=sci-physics/bullet-2.86:= virtual/opengl + osg-fork? ( dev-games/openscenegraph-openmw:=[ffmpeg,jpeg,png,sdl,svg,truetype,zlib] ) + !osg-fork? ( >=dev-games/openscenegraph-3.5.5:=[ffmpeg,jpeg,png,sdl,svg,truetype,zlib] ) qt5? ( app-arch/unshield dev-qt/qtcore:5 @@ -45,26 +58,39 @@ BDEPEND=" app-doc/doxygen[doc] dev-python/sphinx ) + test? ( + dev-cpp/gtest + ) " -PATCHES=( "${FILESDIR}"/${P}-osg-3.6.5-{1,2}.patch ) # bug #709878 - -S="${WORKDIR}/${PN}-${P}" +PATCHES=( + "${FILESDIR}"/openmw-0.46.0-mygui-license.patch + "${FILESDIR}"/openmw-0.46.0-recastnavigation.patch + "${FILESDIR}"/openmw-0.46.0-missing-include.patch + "${FILESDIR}"/openmw-0.46.0-fix-cast.patch + "${FILESDIR}"/openmw-0.46.0-nifbullet-test.patch + # https://gitlab.com/OpenMW/openmw/-/merge_requests/163 + "${DISTDIR}"/openmw-0.46.0-floattest.patch + "${FILESDIR}"/openmw-0.46.0-floattest2.patch +) src_prepare() { cmake_src_prepare - # We don't install license files - sed -i '/LICDIR/d' CMakeLists.txt || die - # Use the system tinyxml headers rm -v extern/oics/tiny{str,xml}* || die + + # Unbundle recastnavigation + rm -vr extern/recastnavigation || die + sed -i "s#GENTOO_RECAST_LIBDIR#${EPREFIX}/usr/$(get_libdir)#" CMakeLists.txt || die } src_configure() { use devtools && ! use qt5 && \ elog "'qt5' USE flag is disabled, 'openmw-cs' will not be installed" + append-cxxflags "-I${EPREFIX}/usr/include/recastnavigation" + local mycmakeargs=( -DBUILD_BSATOOL=$(usex devtools) -DBUILD_DOCS=$(usex doc) @@ -73,10 +99,10 @@ src_configure() { -DBUILD_NIFTEST=$(usex devtools) -DBUILD_OPENCS=$(usex devtools $(usex qt5)) -DBUILD_WIZARD=$(usex qt5) - -DBUILD_UNITTESTS=OFF - -DGLOBAL_DATA_PATH=/usr/share - -DICONDIR="/usr/share/icons/hicolor/256x256/apps" - -DMORROWIND_DATA_FILES="/usr/share/morrowind-data" + -DBUILD_UNITTESTS=$(usex test) + -DGLOBAL_DATA_PATH="${EPREFIX}/usr/share" + -DICONDIR="${EPREFIX}/usr/share/icons/hicolor/256x256/apps" + -DMORROWIND_DATA_FILES="${EPREFIX}/usr/share/morrowind-data" -DUSE_SYSTEM_TINYXML=ON -DDESIRED_QT_VERSION=5 ) @@ -95,6 +121,10 @@ src_compile() { fi } +src_test() { + "${BUILD_DIR}/openmw_test_suite" || die +} + src_install() { cmake_src_install diff --git a/games-engines/openmw/openmw-9999.ebuild b/games-engines/openmw/openmw-9999.ebuild index ac6ee3301bce..1183e5459a13 100644 --- a/games-engines/openmw/openmw-9999.ebuild +++ b/games-engines/openmw/openmw-9999.ebuild @@ -3,14 +3,14 @@ EAPI=7 -inherit cmake xdg-utils readme.gentoo-r1 +inherit cmake flag-o-matic xdg-utils readme.gentoo-r1 DESCRIPTION="Open source reimplementation of TES III: Morrowind" -HOMEPAGE="https://openmw.org/" +HOMEPAGE="https://openmw.org/ https://gitlab.com/OpenMW/openmw" if [[ ${PV} == *9999* ]]; then inherit git-r3 - EGIT_REPO_URI=${EGIT_REPO_URI:-"https://github.com/OpenMW/openmw.git"} + EGIT_REPO_URI="https://github.com/OpenMW/openmw.git" else SRC_URI="https://github.com/OpenMW/openmw/archive/${P}.tar.gz" KEYWORDS="~amd64 ~x86" @@ -19,7 +19,7 @@ fi LICENSE="GPL-3 MIT BitstreamVera ZLIB" SLOT="0" -IUSE="doc devtools test +qt5" +IUSE="doc devtools +osg-fork test +qt5" RESTRICT="!test? ( test )" # FIXME: Unbundle dev-games/openscenegraph-qt in extern/osgQt directory, @@ -27,7 +27,7 @@ RESTRICT="!test? ( test )" RDEPEND=" dev-games/mygui - >=dev-games/openscenegraph-3.5.5:=[ffmpeg,jpeg,png,sdl,svg,truetype,zlib] + dev-games/recastnavigation dev-libs/boost:=[threads] dev-libs/tinyxml[stl] media-libs/libsdl2[joystick,opengl,video] @@ -35,6 +35,8 @@ RDEPEND=" media-video/ffmpeg:= >=sci-physics/bullet-2.86:= virtual/opengl + osg-fork? ( dev-games/openscenegraph-openmw:=[ffmpeg,jpeg,png,sdl,svg,truetype,zlib] ) + !osg-fork? ( >=dev-games/openscenegraph-3.5.5:=[ffmpeg,jpeg,png,sdl,svg,truetype,zlib] ) qt5? ( app-arch/unshield dev-qt/qtcore:5 @@ -58,20 +60,28 @@ BDEPEND=" ) " +PATCHES=( + "${FILESDIR}"/openmw-0.47.0-mygui-license.patch + "${FILESDIR}"/openmw-0.46.0-recastnavigation.patch +) + src_prepare() { cmake_src_prepare - # We don't install license files - sed -i '/LICDIR/d' CMakeLists.txt || die - # Use the system tinyxml headers rm -v extern/oics/tiny{str,xml}* || die + + # Unbundle recastnavigation + rm -vr extern/recastnavigation || die + sed -i "s#GENTOO_RECAST_LIBDIR#${EPREFIX}/usr/$(get_libdir)#" CMakeLists.txt || die } src_configure() { use devtools && ! use qt5 && \ elog "'qt5' USE flag is disabled, 'openmw-cs' will not be installed" + append-cxxflags "-I${EPREFIX}/usr/include/recastnavigation" + local mycmakeargs=( -DBUILD_BSATOOL=$(usex devtools) -DBUILD_DOCS=$(usex doc) @@ -81,9 +91,9 @@ src_configure() { -DBUILD_OPENCS=$(usex devtools $(usex qt5)) -DBUILD_WIZARD=$(usex qt5) -DBUILD_UNITTESTS=$(usex test) - -DGLOBAL_DATA_PATH=/usr/share - -DICONDIR="/usr/share/icons/hicolor/256x256/apps" - -DMORROWIND_DATA_FILES="/usr/share/morrowind-data" + -DGLOBAL_DATA_PATH="${EPREFIX}/usr/share" + -DICONDIR="${EPREFIX}/usr/share/icons/hicolor/256x256/apps" + -DMORROWIND_DATA_FILES="${EPREFIX}/usr/share/morrowind-data" -DUSE_SYSTEM_TINYXML=ON -DDESIRED_QT_VERSION=5 ) diff --git a/games-engines/scummvm-tools/Manifest b/games-engines/scummvm-tools/Manifest index 975aa0c829b0..c5451d4ccc07 100644 --- a/games-engines/scummvm-tools/Manifest +++ b/games-engines/scummvm-tools/Manifest @@ -1,6 +1,4 @@ AUX scummvm-tools-1.8.0-binprefix.patch 539 BLAKE2B 8c3ebc7202e209552fe2521e445a8a1dd025bfa872bd78cc31f05c01b2d559f619f3f1f15dd9f26a66d192410fc5404a5b0afee636cd33603112535500d07459 SHA512 4d2f06dcc3092dd5abab218b68c83dfc2353810b56e3a1d41fab1c7eb20b008ed2e54af486c4c4f2ecbd383ef0afa6f333ed90c694ed3b1733393a6f2ef6fbe3 -DIST scummvm-tools-1.8.0.tar.xz 864048 BLAKE2B 7e3184bda33c582708be204493cd99504ef7286305ba01d052a95bf317c56630109e963ecd8d26d4f8868bb75e5b0cb22154fe4cb794a01dabe25b11568babbb SHA512 eed0aa0cceef59c42aabe94fe382a4494085c479d310cb624131746a1cbacc37d4a43603a5321167eb5fd4d9d8235fc794bdca5a3417fc4d224213e5409347ed -DIST scummvm-tools-2.0.0.tar.xz 866668 BLAKE2B 51e6a771f0b1902f9cadc1e84da4b97aa42bc810c781ba238b3dad9ce242792d0de805e6d129607bace36b7a3cb8dc7a7a1a6fd13211320afe6546569b49f0ff SHA512 a4c645f2a05b5f208658bad1a3122115a3077809141f5d4b281414ca32854d14987a8b6d4579f3bdd9d3eeeab880d98e3b540c3f69155197f20a2094a7812c60 -EBUILD scummvm-tools-1.8.0-r1.ebuild 1293 BLAKE2B ad9de8698cb7425d52604728ab28e2acf5745dd8ac5ab5fcf4507e71d9736e9343690e947f86783ff863489f59d32d2c1cf268da6086edf7855c6718b59bf22f SHA512 5bb3ce04e3a5c2ec120e7d87461b142bf46c8e69d317ce7ca38c137c2cdfa489fd977aa1d778196b468534b866ecd2ee0b4709d97bdee543c35813f56420a1e4 -EBUILD scummvm-tools-2.0.0-r1.ebuild 1323 BLAKE2B ded0c34d029a8d41c99ad38919af5614e9bea5252d98a2ffded8d218717851937552fe7955a9e33ab9ee43465cc626bbc14597697ce35fa6030649f416475212 SHA512 4eec3a6492f2849204fdea7f6f0091de06cba0cefbdd74b386ec9d69d408a0b2a163f2e7d9c9d3fd61808d0a79ee79460cae44ded9eba161253875e25ad7ccb5 +DIST scummvm-tools-2.1.0.tar.xz 710124 BLAKE2B e6985c2e12a31aa9b11a80193186b101e663ce7eaf95de68639482bc82e104c879518f253c40e733c829ceb75b62d4905314cf7ad959766c4b7b49c1ee9e0136 SHA512 40e0b1a545257922dd1846d520ef0c18ef7a2682a3d7bb1709bcd49b1338ed7cefea438958941586329271d84e01bf189a14e31f5758e500df607d162ee9cc15 +EBUILD scummvm-tools-2.1.0.ebuild 1322 BLAKE2B 1d99ef88962b88e3e812f130a65da23642f9e84e726b02b142d788d3962cf812f79efb3ee3e0a7c1d7ca3dd6c38761ba980f10b3eb924617c054a87bb842a2c7 SHA512 590b55fd52a3af2233d2140f45450f2c89907319198789aece4469113d6291f96ec067558db7dc90d0beb42a051cd0012807afa3fd250567f114dee527678e4c MISC metadata.xml 330 BLAKE2B 4f070e6c8bc4c2f6b4efb4f0eb84ea861773fba85acda1f4dec223a6594e2cdf4ac90c895a98819e2fab2ba2cd30081aee591554d2e932025a9da6d3c16a275b SHA512 4541c93daab84bd6d0764adccf44bb4986ba02303e731b5b9a7a8060bb88a32c1cef91e2b2910e15915b67cf3ea2b5f31b4e637909d1d0b7c3b627f1134206dc diff --git a/games-engines/scummvm-tools/scummvm-tools-1.8.0-r1.ebuild b/games-engines/scummvm-tools/scummvm-tools-1.8.0-r1.ebuild deleted file mode 100644 index 2a3b2686c5a6..000000000000 --- a/games-engines/scummvm-tools/scummvm-tools-1.8.0-r1.ebuild +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -WX_GTK_VER=3.0 -inherit wxwidgets eutils flag-o-matic - -DESCRIPTION="utilities for the SCUMM game engine" -HOMEPAGE="http://scummvm.sourceforge.net/" -SRC_URI="http://scummvm.org/frs/scummvm-tools/${PV}/${P}.tar.xz" - -LICENSE="GPL-2+" -SLOT="0" -KEYWORDS="~amd64 ~ppc64 ~x86" -IUSE="flac iconv mad png vorbis" -RESTRICT="test" # some tests require external files - -RDEPEND=">=dev-libs/boost-1.32:= - sys-libs/zlib - x11-libs/wxGTK:${WX_GTK_VER} - flac? ( media-libs/flac ) - iconv? ( virtual/libiconv media-libs/freetype:2 ) - mad? ( media-libs/libmad ) - png? ( media-libs/libpng:0 ) - vorbis? ( media-libs/libvorbis )" -DEPEND="${RDEPEND} - app-arch/xz-utils - virtual/pkgconfig" - -PATCHES=( - "${FILESDIR}/${P}-binprefix.patch" -) - -src_prepare() { - default - - need-wxwidgets unicode - rm -rf *.bat dists/win32 || die - sed -ri -e '/^(CC|CXX)\b/d' Makefile || die -} - -src_configure() { - # Not an autoconf script - ./configure \ - --disable-tremor \ - --enable-verbose-build \ - --mandir=/usr/share/man \ - $(use_enable flac) \ - $(use_enable iconv) \ - $(use_enable iconv freetype) \ - $(use_enable mad) \ - $(use_enable png) \ - $(use_enable vorbis) || die -} - -src_install() { - EXEPREFIX="${PN}-" default -} diff --git a/games-engines/scummvm-tools/scummvm-tools-2.0.0-r1.ebuild b/games-engines/scummvm-tools/scummvm-tools-2.1.0.ebuild index 4cf673ee91bb..54cbb5e6684d 100644 --- a/games-engines/scummvm-tools/scummvm-tools-2.0.0-r1.ebuild +++ b/games-engines/scummvm-tools/scummvm-tools-2.1.0.ebuild @@ -1,8 +1,8 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 -WX_GTK_VER=3.0 +EAPI=7 +WX_GTK_VER=3.0-gtk3 inherit wxwidgets eutils flag-o-matic DESCRIPTION="utilities for the SCUMM game engine" @@ -15,17 +15,22 @@ KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" IUSE="flac iconv mad png vorbis" RESTRICT="test" # some tests require external files -RDEPEND=">=dev-libs/boost-1.32:= +RDEPEND=" + >=dev-libs/boost-1.32:= sys-libs/zlib x11-libs/wxGTK:${WX_GTK_VER} flac? ( media-libs/flac ) iconv? ( virtual/libiconv media-libs/freetype:2 ) mad? ( media-libs/libmad ) - png? ( media-libs/libpng:0 ) - vorbis? ( media-libs/libvorbis )" -DEPEND="${RDEPEND} - app-arch/xz-utils - virtual/pkgconfig" + png? ( media-libs/libpng:0= ) + vorbis? ( media-libs/libvorbis ) +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + virtual/pkgconfig +" PATCHES=( "${FILESDIR}/${PN}-1.8.0-binprefix.patch" @@ -34,12 +39,13 @@ PATCHES=( src_prepare() { default - need-wxwidgets unicode rm -rf *.bat dists/win32 || die sed -ri -e '/^(CC|CXX)\b/d' Makefile || die } src_configure() { + setup-wxwidgets + # Not an autoconf script ./configure \ --prefix=/usr \ diff --git a/games-engines/scummvm/Manifest b/games-engines/scummvm/Manifest index d5cfff21c75f..be596921f54c 100644 --- a/games-engines/scummvm/Manifest +++ b/games-engines/scummvm/Manifest @@ -1,5 +1,4 @@ AUX scummvm-2.1.0-fluidsynth.patch 1393 BLAKE2B 080c704d493d21f0e5e4387bba0bf1a2354aaccf0e96b7383f956ef89eb973cf0cdf9f60a922a8e7bd25e520a6922a1879cc5614b42731c610c2c7da64033cad SHA512 6e577087ad6d67ee45d488c762ea41d4899001a31730c47cdf263619cc079e0abd3871aa8f947f681b6d59d76094c0278bd4ed8c2439ccc4d700aa32f860c318 -AUX scummvm-2.1.0-tts_pthread_link.patch 610 BLAKE2B 7ae2613cb65f47888a668504c64196bbcb9aafa48f37e8f08cba52a21e765adb20fd9255f1218f2e3b887111587f32919cd448017543c3df303d1ed5ae1ac80c SHA512 93137b7bea5d8c6528dba3aa81b0486d64f53f57aaf975561b79a3fccc882f36f0acf327a997892b2d2c3fe1d7134cc3a3d029bd14852dbae932b07d7633da55 -DIST scummvm-2.1.0.tar.xz 27188916 BLAKE2B b808ff335e5b25c58c8caebfe660b4c2938dcb6eada0aa5b31777b97ff2fb7cb3732d516fc4d981ab1bee16876d62f634f69517158c7c233e11cc22575b15c09 SHA512 9a03cf207660aa49e49f53e1df10b774b7c9711dffd527e00518015e7e7057f25538a7dd89e248e9237434cf08a9f7ea6b215805fb65a770fb20596f5e713218 -EBUILD scummvm-2.1.0.ebuild 2765 BLAKE2B bfb9bddcb3c8bca3a2046e8f6e70b2c49e5cac41248689d57323013f9f15a45e0b57ef5e4b535f9848c33d8274733b4fdef1abbe15db530e3a52576e83bef2d7 SHA512 ae0c50a090892c2242d9617b6976f407dc67cafae072eed6cba951b861090863fee937a4b640e3a4744b7fa9545181b6427db10d8c9e27f3ace049ba92a5221b +DIST scummvm-2.1.2.tar.xz 27056972 BLAKE2B 0afedd27350ea80c3610106b7e09fd57aaebc8847eebdb180628559ca30f49d005a5466bd3991a76271eff39a782e8abf3bf1a3ace25909a1d9947a1b539d6c2 SHA512 a6462bc55d90a229e32389380504d6ecf0c836c8a6733775c993f8db34918ef1f9d0559acc7c110e98719b32cf84408a01021dcfa3fe5a821fe4265c1bc49ecc +EBUILD scummvm-2.1.2.ebuild 2789 BLAKE2B 5b7cb6a8ae1f1fc3bc29d68ea541b4257ea4d22f2467b2e9a3054e463742dc089d0e8d4d0d721c56387ba8963edcb43dedf098d99ce7fa81491d1d61a0f5f7bc SHA512 cd0d059b6fed3c9cca2583f825a2c9bdc60fb96e00e82763e017a1d642558b3d30cdeb3a03f2bb1d27103fae09c57edaae4ebb38c40a012da4612012a463d32e MISC metadata.xml 794 BLAKE2B 55a51df988ba376df42552e2e943f3028aba2b9125d671f026d4a47a10da79d5da49f6307aabd33aa237812a3440b8014d498794c9837b859274221832625cca SHA512 03f3a6e1554afecc3d4f57ca58ed73a5887649170872df4940ad2bcab90a7a98fde3d2de3524c528b60f37f8ecf2b463189be72057d4495c849363d97b824b83 diff --git a/games-engines/scummvm/files/scummvm-2.1.0-tts_pthread_link.patch b/games-engines/scummvm/files/scummvm-2.1.0-tts_pthread_link.patch deleted file mode 100644 index 70440be0e13a..000000000000 --- a/games-engines/scummvm/files/scummvm-2.1.0-tts_pthread_link.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 26c09be3a091e47419ba2629c5f2a346ad6a5543 Mon Sep 17 00:00:00 2001 -From: Christian Krause <chkr@plauener.de> -Date: Wed, 16 Oct 2019 22:41:27 +0200 -Subject: [PATCH] TTS: Link libpthread explicitly on Linux platform - ---- - configure | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure b/configure -index 0adf0bb7bad..dbfe336e6d0 100755 ---- a/configure -+++ b/configure -@@ -5504,7 +5504,7 @@ else - echo "linux" - _tts=yes - define_in_config_if_yes $_tts 'USE_SPEECH_DISPATCHER' -- append_var LIBS '-lspeechd' -+ append_var LIBS '-lspeechd -lpthread' - ;; - mingw*) - echo "win32" diff --git a/games-engines/scummvm/scummvm-2.1.0.ebuild b/games-engines/scummvm/scummvm-2.1.2.ebuild index 06cc2f964fec..5f7022f10551 100644 --- a/games-engines/scummvm/scummvm-2.1.0.ebuild +++ b/games-engines/scummvm/scummvm-2.1.2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -10,7 +10,7 @@ SRC_URI="https://scummvm.org/frs/scummvm/${PV}/${P}.tar.xz" LICENSE="GPL-2+ LGPL-2.1 BSD GPL-3-with-font-exception" SLOT="0" -KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" +KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86" IUSE="a52 aac alsa debug flac fluidsynth jpeg lua mpeg2 mp3 net opengl png speech theora truetype unsupported vorbis zlib" RESTRICT="test" # it only looks like there's a test there #77507 @@ -25,7 +25,7 @@ RDEPEND=" mp3? ( media-libs/libmad ) mpeg2? ( media-libs/libmpeg2 ) net? ( media-libs/sdl2-net ) - opengl? ( virtual/opengl ) + opengl? ( || ( virtual/opengl media-libs/mesa[gles2] media-libs/mesa[gles1] ) ) png? ( media-libs/libpng:0 ) speech? ( app-accessibility/speech-dispatcher ) truetype? ( media-libs/freetype:2 ) @@ -46,8 +46,7 @@ BDEPEND=" S="${WORKDIR}/${P/_/}" PATCHES=( - "${FILESDIR}/${P}-tts_pthread_link.patch" - "${FILESDIR}/${P}-fluidsynth.patch" + "${FILESDIR}/${PN}-2.1.0-fluidsynth.patch" ) src_prepare() { |