From 7442516a9e82c154de48ff3812fa58d5f632217e Mon Sep 17 00:00:00 2001 From: Michael Sterrett Date: Thu, 3 Sep 2015 14:25:21 -0400 Subject: [PATCH] fix building with gcc52 with patch from Sven Eden via bug #559472 Package-Manager: portage-2.2.20.1 --- dev-games/ogre/files/ogre-1.9.0-gcc52.patch | 63 +++++++++++++++++++ ...re-1.9.0-remove_media_path_to_bindir.patch | 4 +- ...1.9.0-remove_resource_path_to_bindir.patch | 4 +- dev-games/ogre/ogre-1.9.0-r1.ebuild | 6 +- 4 files changed, 71 insertions(+), 6 deletions(-) create mode 100644 dev-games/ogre/files/ogre-1.9.0-gcc52.patch diff --git a/dev-games/ogre/files/ogre-1.9.0-gcc52.patch b/dev-games/ogre/files/ogre-1.9.0-gcc52.patch new file mode 100644 index 000000000000..030368de29e3 --- /dev/null +++ b/dev-games/ogre/files/ogre-1.9.0-gcc52.patch @@ -0,0 +1,63 @@ +--- a/OgreMain/include/OgreProgressiveMeshGenerator.h ++++ b/OgreMain/include/OgreProgressiveMeshGenerator.h +@@ -215,7 +215,40 @@ + void tuneContainerSize(); + void addVertexData(VertexData* vertexData, bool useSharedVertexLookup); + template +- void addIndexDataImpl(IndexType* iPos, const IndexType* iEnd, VertexLookupList& lookup, unsigned short submeshID); ++ void addIndexDataImpl(IndexType* iPos, const IndexType* iEnd, VertexLookupList& lookup, unsigned short submeshID) ++ { ++ ++ // Loop through all triangles and connect them to the vertices. ++ for (; iPos < iEnd; iPos += 3) { ++ // It should never reallocate or every pointer will be invalid. ++ OgreAssert(mTriangleList.capacity() > mTriangleList.size(), ""); ++ mTriangleList.push_back(PMTriangle()); ++ PMTriangle* tri = &mTriangleList.back(); ++ tri->isRemoved = false; ++ tri->submeshID = submeshID; ++ for (int i = 0; i < 3; i++) { ++ // Invalid index: Index is bigger then vertex buffer size. ++ OgreAssert(iPos[i] < lookup.size(), ""); ++ tri->vertexID[i] = iPos[i]; ++ tri->vertex[i] = lookup[iPos[i]]; ++ } ++ if (tri->isMalformed()) { ++#if OGRE_DEBUG_MODE ++ stringstream str; ++ str << "In " << mMeshName << " malformed triangle found with ID: " << getTriangleID(tri) << ". " << ++ std::endl; ++ printTriangle(tri, str); ++ str << "It will be excluded from LOD level calculations."; ++ LogManager::getSingleton().stream() << str.str(); ++#endif ++ tri->isRemoved = true; ++ mIndexBufferInfoList[tri->submeshID].indexCount -= 3; ++ continue; ++ } ++ tri->computeNormal(); ++ addTriangleToEdges(tri); ++ } ++ } + void addIndexData(IndexData* indexData, bool useSharedVertexLookup, unsigned short submeshID); + + void computeCosts(); +--- a/OgreMain/src/OgreProgressiveMeshGenerator.cpp ++++ b/OgreMain/src/OgreProgressiveMeshGenerator.cpp +@@ -219,6 +219,8 @@ + } + vbuf->unlock(); + } ++/// Called from OgreQueuedProgressiveMeshGenerator.cpp, so it can not be defined in here. ++#if 0 + template + void ProgressiveMeshGenerator::addIndexDataImpl(IndexType* iPos, const IndexType* iEnd, + VertexLookupList& lookup, +@@ -256,6 +258,7 @@ + addTriangleToEdges(tri); + } + } ++#endif // 0 + + void ProgressiveMeshGenerator::addIndexData(IndexData* indexData, bool useSharedVertexLookup, unsigned short submeshID) + { diff --git a/dev-games/ogre/files/ogre-1.9.0-remove_media_path_to_bindir.patch b/dev-games/ogre/files/ogre-1.9.0-remove_media_path_to_bindir.patch index 9af7685c7d77..bb2ca551dbe4 100644 --- a/dev-games/ogre/files/ogre-1.9.0-remove_media_path_to_bindir.patch +++ b/dev-games/ogre/files/ogre-1.9.0-remove_media_path_to_bindir.patch @@ -1,5 +1,5 @@ ---- a/CMake/InstallResources.cmake 2014-10-29 12:43:49.000000000 +0100 -+++ b/CMake/InstallResources.cmake 2014-10-29 12:46:10.017611431 +0100 +--- a/CMake/InstallResources.cmake ++++ b/CMake/InstallResources.cmake @@ -178,10 +178,6 @@ # CREATE CONFIG FILES - BUILD DIR VERSIONS diff --git a/dev-games/ogre/files/ogre-1.9.0-remove_resource_path_to_bindir.patch b/dev-games/ogre/files/ogre-1.9.0-remove_resource_path_to_bindir.patch index d73762859081..a26aa3f447bd 100644 --- a/dev-games/ogre/files/ogre-1.9.0-remove_resource_path_to_bindir.patch +++ b/dev-games/ogre/files/ogre-1.9.0-remove_resource_path_to_bindir.patch @@ -1,5 +1,5 @@ ---- a/CMake/InstallResources.cmake 2013-12-01 18:28:12.000000000 +0100 -+++ b/CMake/InstallResources.cmake 2014-10-29 12:38:29.963602465 +0100 +--- a/CMake/InstallResources.cmake ++++ b/CMake/InstallResources.cmake @@ -201,11 +201,6 @@ set(OGRE_PLUGIN_DIR_DBG "") set(OGRE_SAMPLES_DIR_REL "") diff --git a/dev-games/ogre/ogre-1.9.0-r1.ebuild b/dev-games/ogre/ogre-1.9.0-r1.ebuild index 059d63e167ba..9b79034fd623 100644 --- a/dev-games/ogre/ogre-1.9.0-r1.ebuild +++ b/dev-games/ogre/ogre-1.9.0-r1.ebuild @@ -68,8 +68,10 @@ src_prepare() { rm -f Tools/XMLConverter/{include,src}/tiny*.* # Fix some path issues - epatch "${FILESDIR}/${P}-remove_resource_path_to_bindir.patch" \ - "${FILESDIR}/${P}-remove_media_path_to_bindir.patch" + epatch \ + "${FILESDIR}/${P}-remove_resource_path_to_bindir.patch" \ + "${FILESDIR}/${P}-remove_media_path_to_bindir.patch" \ + "${FILESDIR}/${P}-gcc52.patch" } src_configure() { -- 2.26.2