diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2020-08-25 10:45:55 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2020-08-25 10:45:55 +0100 |
commit | 3cf7c3ef441822c889356fd1812ebf2944a59851 (patch) | |
tree | c513fe68548b40365c1c2ebfe35c58ad431cdd77 /games-engines/openmw/files | |
parent | 05b8b0e0af1d72e51a3ee61522941bf7605cd01c (diff) |
gentoo resync : 25.08.2020
Diffstat (limited to 'games-engines/openmw/files')
9 files changed, 763 insertions, 72 deletions
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") |