games-engines/openmw: drop old

Closes: https://github.com/gentoo/gentoo/pull/23194
Closes: https://bugs.gentoo.org/794538
Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Alexey Sokolov <alexey+gentoo@asokolov.org>
Signed-off-by: David Seifert <soap@gentoo.org>
This commit is contained in:
Alexey Sokolov
2021-12-06 11:40:28 +01:00
committed by David Seifert
parent 55b046348e
commit 7d9a09fdbb
10 changed files with 0 additions and 958 deletions

View File

@@ -1,3 +1 @@
DIST openmw-0.46.0-floattest.patch 43168 BLAKE2B 060b529fd4cd01f0fc723bb5a00a256b9c1ae4413c7b22581467cce75416e01041c3af22f0215ad9b1c475965a988065e0860c01c1e71d97454b022eec4779ea SHA512 0e165417e9ae047231fdc27b62251b33867f3782c1753f81705c886d6d3a433c8bbc3b4653a2555bc644bad11db9769d4bc2abcc84ca3ab23fabb6b80347bc32
DIST openmw-0.46.0.tar.gz 5155004 BLAKE2B 8ad94a7fffe5a0739c56c778efe2ec17ef66c312a7fe5caf015cf3cad2bc17d2abe8cdc3f4134049a32fe55c4f4b3f72678d2d0ce1037fd02f6ac753b9d89b2c SHA512 da384aead300552817c0d0ce03515a5ccc95dcab4e02d4c1dd0d6c5f1b01ee01209bbaea74e2d12021e3465e49b051823bb018de39675c5a22c6892893624486
DIST openmw-0.47.0.tar.gz 5156857 BLAKE2B 40e8b9670423259fa0cc03ef000c17ebe06d1d58c2527b51b25cea3b54978b8a698984371eac14ff212f9550253ab17d41b83d37426371f12f5ce2d30b240d3d SHA512 517e650d0054cdba8d38de05ed3975b0fcf8de32fda59c8df7c34b973e5390efa0dd9ec79babdfdaa79dee7aa8a75009776f62fad91b9aa9aa28016c5032652b

View File

@@ -1,10 +0,0 @@
https://bugs.gentoo.org/808763
--- a/components/vfs/filesystemarchive.cpp
+++ b/components/vfs/filesystemarchive.cpp
@@ -1,4 +1,5 @@
#include "filesystemarchive.hpp"
+#include <algorithm>
#include <boost/filesystem.hpp>

View File

@@ -1,214 +0,0 @@
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))
{
}

View File

@@ -1,139 +0,0 @@
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)

View File

@@ -1,36 +0,0 @@
diff --git a/components/sceneutil/mwshadowtechnique.cpp b/components/sceneutil/mwshadowtechnique.cpp
index cb3a1b2..62cfeec 100644
--- a/components/sceneutil/mwshadowtechnique.cpp
+++ b/components/sceneutil/mwshadowtechnique.cpp
@@ -24,6 +24,7 @@
#include <osg/io_utils>
#include <sstream>
+#include <limits>
namespace {
diff --git a/components/sceneutil/shadow.cpp b/components/sceneutil/shadow.cpp
index 035c19a..aba1b81 100644
--- a/components/sceneutil/shadow.cpp
+++ b/components/sceneutil/shadow.cpp
@@ -4,6 +4,7 @@
#include <components/sceneutil/vismask.hpp>
#include <components/settings/settings.hpp>
+#include <limits>
namespace SceneUtil
{
diff --git a/components/terrain/quadtreeworld.cpp b/components/terrain/quadtreeworld.cpp
index f998b78..e0e47dd 100644
--- a/components/terrain/quadtreeworld.cpp
+++ b/components/terrain/quadtreeworld.cpp
@@ -3,6 +3,7 @@
#include <osgUtil/CullVisitor>
#include <sstream>
+#include <limits>
#include <components/misc/constants.hpp>
#include <components/sceneutil/mwshadowtechnique.hpp>

View File

@@ -1,19 +0,0 @@
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>

View File

@@ -1,16 +0,0 @@
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")

View File

@@ -1,335 +0,0 @@
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

View File

@@ -1,24 +0,0 @@
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)

View File

@@ -1,163 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit cmake flag-o-matic xdg-utils readme.gentoo-r1
DESCRIPTION="Open source reimplementation of TES III: Morrowind"
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"
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/recastnavigation
dev-libs/boost:=[threads(+),zlib]
dev-libs/tinyxml:=[stl]
media-libs/libsdl2[joystick,opengl,video]
media-libs/openal
media-video/ffmpeg:=
>=sci-physics/bullet-2.86:=[-double-precision]
virtual/opengl
osg-fork? ( =dev-games/openscenegraph-openmw-3.4*:=[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
dev-qt/qtgui:5
dev-qt/qtnetwork:5
dev-qt/qtopengl:5
dev-qt/qtwidgets:5
)
"
DEPEND="${RDEPEND}"
BDEPEND="
virtual/pkgconfig
doc? (
app-doc/doxygen[doc]
dev-python/sphinx
)
test? (
dev-cpp/gtest
)
"
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
"${FILESDIR}"/openmw-0.46.0-gcc11.patch
"${FILESDIR}"/openmw-0.46.0-boost-1.77.patch
)
src_prepare() {
cmake_src_prepare
# 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)
-DBUILD_ESMTOOL=$(usex devtools)
-DBUILD_LAUNCHER=$(usex qt5)
-DBUILD_NIFTEST=$(usex devtools)
-DBUILD_OPENCS=$(usex devtools $(usex qt5))
-DBUILD_WIZARD=$(usex qt5)
-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
)
cmake_src_configure
}
src_compile() {
cmake_src_compile
if use doc ; then
cmake_src_compile doc
find "${CMAKE_BUILD_DIR}"/docs/Doxygen/html \
-name '*.md5' -type f -delete || die
HTML_DOCS=( "${CMAKE_BUILD_DIR}"/docs/Doxygen/html/. )
fi
}
src_test() {
"${BUILD_DIR}/openmw_test_suite" || die
}
src_install() {
cmake_src_install
local DOC_CONTENTS="
You need the original Morrowind data files. If you haven't
installed them yet, you can install them straight via the
installation wizard which is the officially supported method
(either by using the launcher or by calling 'openmw-wizard'
directly).\n"
if ! use qt5; then
local DOC_CONTENTS+="\n\n
USE flag 'qt5' is disabled, 'openmw-launcher' and
'openmw-wizard' are not available. You are on your own for
making the Morrowind data files available and pointing
openmw at them.\n\n
Additionally; you must import the Morrowind.ini file before
running openmw with the Morrowind data files for the first
time. Typically this can be done like so:\n\n
\t mkdir -p ~/.config/openmw\n
\t openmw-iniimporter /path/to/Morrowind.ini ~/.config/openmw/openmw.cfg"
fi
readme.gentoo_create_doc
}
pkg_postinst() {
xdg_icon_cache_update
readme.gentoo_print_elog
}
pkg_postrm() {
xdg_icon_cache_update
}