bump, compatibility with ogre-1.9, make 0.4.3 depend on old ogre (bug #528480)
authorThomas Kahle <tomka@gentoo.org>
Mon, 12 Jan 2015 13:05:21 +0000 (13:05 +0000)
committerThomas Kahle <tomka@gentoo.org>
Mon, 12 Jan 2015 13:05:21 +0000 (13:05 +0000)
Package-Manager: portage-2.2.14/cvs/Linux x86_64
Manifest-Sign-Key: 0x565C32BC

games-strategy/freeorion/ChangeLog
games-strategy/freeorion/Manifest
games-strategy/freeorion/files/ogre-1.9-compat.patch [new file with mode: 0644]
games-strategy/freeorion/freeorion-0.4.3.ebuild
games-strategy/freeorion/freeorion-0.4.4.ebuild [new file with mode: 0644]

index a48d3599d16efa6d39e37f15a5f1ff1d9b07f5f0..2f37a0cad1553be8784cb11dcd2c50b230c69d76 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for games-strategy/freeorion
-# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/games-strategy/freeorion/ChangeLog,v 1.10 2013/10/07 08:08:35 tomka Exp $
+# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/games-strategy/freeorion/ChangeLog,v 1.11 2015/01/12 13:05:17 tomka Exp $
+
+*freeorion-0.4.4 (12 Jan 2015)
+
+  12 Jan 2015; Thomas Kahle <tomka@gentoo.org> +files/ogre-1.9-compat.patch,
+  +freeorion-0.4.4.ebuild, freeorion-0.4.3.ebuild:
+  bump, compatibility with ogre-1.9, make 0.4.3 depend on old ogre (bug #528480)
 
   07 Oct 2013; Thomas Kahle <tomka@gentoo.org> freeorion-0.4.3.ebuild:
   fix insecure runpaths (bug 485510, thanks hasufell)
index 4ebaf8c56fd1577698bc25c08247e74eb09dcefa..ec94027bd37c25fc6b487c18cf54fd2896dc5fb5 100644 (file)
@@ -1,14 +1,17 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA256
 
+AUX ogre-1.9-compat.patch 22728 SHA256 76f7d07926c654f15144f73eb8f75df66655ea512c9e3d27047cc37d189a249a SHA512 68c2582d04b3a2b936f499ac8ed5af43c7cf9987e9269d2c6450c87e43dc501f8a2dafca403196e4a735e5ff401b3501165350b0c9e0ffe45968067951773db1 WHIRLPOOL ba34bdc3630f713c1497c9971894b5848bda0e5fa0c35370d2d46e39de64d924a9eb3e2005efe569140896e80a5a9abf5e90b45cc2331856387cb3a93c71d714
 DIST freeorion-0.4.3.tar.bz2 171281552 SHA256 f0a61a42ba09ed2c8b453b734af7320582f8711913b741c5f9d86cad214bf7cf SHA512 87a73c97af14c0c81cfa19023aec410dd785988cab1edafb0e696305e6203fb431faddcc6ca2c4040e5ef0e8a228c2fda6ccf0f0ef93b47aa48ccd0758ecbe02 WHIRLPOOL 1761c2bf6d67fc93bb8e15b60c2dc23b1145e3d101fb1fde85996f94b83875a57d0c7e518e7b404a6d2098d6909feb8458b2630b6d6415c48fd6cc709165d9df
-EBUILD freeorion-0.4.3.ebuild 3001 SHA256 70bcc0a7189fc7775538ed00a52d8ead29898c6c68327774a85a5f94350181d2 SHA512 16fc8e2d61082f13e9fdaf5f23d79a77c04225de0e96ccc251eb20a125b4968ff6c2b356a6d6d8a1fad1bebc47902ad6562c7f545202bddf2af539a841ed38c3 WHIRLPOOL 80c43b9f0667e00ddefbf6628ed8e12257a4b4409b6b54733c59cd55b5c366f3b15096352fb13b8ee9689343f088c97e3cc8fb93064b272b3b44c94d1714e3ad
-MISC ChangeLog 2293 SHA256 c601fa59c9a6655365587ea01c990543e2bc0a33c547030dd601af7a910dd3bc SHA512 aa1261e3b149836c47639d6f1f9debed9ea84f391ee96cca48ec58a74b5e7cbfb77bb77bb97da106ea25e335fb043bda9b67157586c87594a3aad8e42d43ff3d WHIRLPOOL 09b8515e43ba6dadce82a7c6c0782b9cc8fb86dc5f3ae77d1127cd3a9b4485ad6783a6a2e200b4f200844c357f7f25d8752723ed161fbaeb9b096c214b8f7052
+DIST freeorion-0.4.4.tar.bz2 143462526 SHA256 0941242cb690ef00d9e2faec833b0a0ec2d593b97faba5af5866b738111c6203 SHA512 b2989c859af6c13a945b28b8f1344025230d71d0b0b7f0b46c4a3b2c88775b7fe3f88b7250233dab7a5887a0e6d7936da970647a7e056e97ea5f0fef08df6513 WHIRLPOOL 44b8a85b8300394a7b64991ce6d3399e089be6231f7eba1298bcd72009cc83fb49ffaaa6877ced00b275b64f1b63858c87270f6207f9b7c380c11b6a719916f6
+EBUILD freeorion-0.4.3.ebuild 3006 SHA256 4d2da53551158be6048e211f3fde77ce56053d3af5afc8f9aded92abc8ce9bea SHA512 3f0d13a0d7bddb076ba8fdaa821e7a30a56e0f6891300cb8b5aa37b1711728cdf40d454733baffe8454113c2d2cf1935c5ce382429becf6a02f140c7bb9d4175 WHIRLPOOL 5f06760038b91168c301bae2c63e24c08aa2cec569d565006cd071a365b25dd822a7fa6c7c8aa581b7d1495b4888a570c172bf18c237b4126d7f0351ef458250
+EBUILD freeorion-0.4.4.ebuild 3030 SHA256 b1723d5f791708199df07000bde431910be8ade29351409d7d9140e7257edddb SHA512 780da745fd3c1c5ee60be766aa68b3ef4fff860323c22df63bbd4eb117e0d83f5d5e80027b37e42e2ecf2ce16002c5dd9eff269428d6faba11f3f37a0ae1e6a5 WHIRLPOOL ebde842f2e88c3502540543407a8b2e747e77708dd2452bc2925c928dcfd3ba3544461f164fb13026e21947e5cfba99ae589fffc2746296d04e9ec29b5050e13
+MISC ChangeLog 2535 SHA256 739d310889bdef2201fec0130e2c52935f7412810fcbfe3f4365d82f901ad6a6 SHA512 c5858784f345a9eef713d1b2fa2a1d2263964efafd750122581964a95c13aa0abee9bcfc56c783a11666047b8a0dee2784a2aef4e47a7a34f60e64cd65f2d4c8 WHIRLPOOL 9fe6e59c9cb91370c0708330383d86b40da526d97de7bc5c3e7508a7b9438340414e9804c190db84a92c0c2032085aa8c4edbffeef558b454fe66088bfcbc6a8
 MISC metadata.xml 657 SHA256 31922a4a89499c885b776d17fe427833212e76d80e78755fd202d252ee9120e4 SHA512 a00342cfa84144df06cc461da147a1211c79c6421a65dfe748e2c4ac30f4deab05eb96dc4843d2b6eb814e5df567adb3907e0e6ad0d4b2f4bf3cf387f92aff92 WHIRLPOOL aa131a7c6bcf66273a7c4d0a3a30a19bbbb135707b67359eb80a2a782b608dba169387dc479a1c72971310211ff75db0b41b9c98e50e2127251f6e088f8486ec
 -----BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.20 (GNU/Linux)
+Version: GnuPG v2
 
-iF4EAREIAAYFAlJSbDUACgkQid6yGVZcMrzROwD+MiN+/NLvWC1qnuiwefGGlsRG
-+CZROZ6SOZ5iWrJ+LYsBALZgSe83m2BEIScCmLzoRhzXQ3JYVxm3CmSbjRy+HLuV
-=/6U+
+iF4EAREIAAYFAlSzxzAACgkQid6yGVZcMrxSMgD+Oa63ESIOcHEBOw9V0mnAUylQ
+2pasoVBaKIo3ZDM50JMA/0HO5Ba8jF0YdFv070YQ6ymF1rgSINdW6rXmcZa5wgcN
+=NEUv
 -----END PGP SIGNATURE-----
diff --git a/games-strategy/freeorion/files/ogre-1.9-compat.patch b/games-strategy/freeorion/files/ogre-1.9-compat.patch
new file mode 100644 (file)
index 0000000..b943d86
--- /dev/null
@@ -0,0 +1,415 @@
+diff -U 3 -dHrN freeorion-0.4.4-orig/PagedGeometry/include/BatchedGeometry.h freeorion-0.4.4/PagedGeometry/include/BatchedGeometry.h
+--- freeorion-0.4.4-orig/PagedGeometry/include/BatchedGeometry.h       2015-01-12 13:16:19.480177578 +0100
++++ freeorion-0.4.4/PagedGeometry/include/BatchedGeometry.h    2015-01-12 13:44:40.700200986 +0100
+@@ -88,7 +88,11 @@
+          void setMaterialName(const Ogre::String &mat, const Ogre::String &rg =\r
+             Ogre::ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME)\r
+          {\r
+-            m_ptrMaterial = Ogre::MaterialManager::getSingleton().getByName(mat, rg);\r
++#if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))\r
++          m_ptrMaterial = Ogre::MaterialManager::getSingleton().getByName(mat, rg);\r
++#else\r
++          m_ptrMaterial = Ogre::MaterialManager::getSingleton().getByName(mat, rg).staticCast<Ogre::Material>();\r
++#endif\r
+          }\r
+ \r
+          /// Get material name. Be careful, resource group name missing\r
+diff -U 3 -dHrN freeorion-0.4.4-orig/PagedGeometry/source/BatchedGeometry.cpp freeorion-0.4.4/PagedGeometry/source/BatchedGeometry.cpp
+--- freeorion-0.4.4-orig/PagedGeometry/source/BatchedGeometry.cpp      2015-01-12 13:16:19.470177578 +0100
++++ freeorion-0.4.4/PagedGeometry/source/BatchedGeometry.cpp   2015-01-12 13:29:10.890188192 +0100
+@@ -479,7 +479,11 @@
+    // that the user may be using somewhere else).\r
+    {\r
+       Ogre::String newName = parentMaterial->getName() + "_Batched";\r
+-      m_ptrMaterial = MaterialManager::getSingleton().getByName(newName, parentMaterial->getGroup());\r
++      #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))\r
++         m_ptrMaterial = MaterialManager::getSingleton().getByName(newName, parentMaterial->getGroup());\r
++      #else\r
++         m_ptrMaterial = MaterialManager::getSingleton().getByName(newName, parentMaterial->getGroup()).staticCast<Material>();\r
++      #endif\r
+       if (m_ptrMaterial.isNull())\r
+          m_ptrMaterial = parentMaterial->clone(newName);\r
+    }\r
+diff -U 3 -dHrN freeorion-0.4.4-orig/PagedGeometry/source/BatchPage.cpp freeorion-0.4.4/PagedGeometry/source/BatchPage.cpp
+--- freeorion-0.4.4-orig/PagedGeometry/source/BatchPage.cpp    2015-01-12 13:16:19.470177578 +0100
++++ freeorion-0.4.4/PagedGeometry/source/BatchPage.cpp 2015-01-12 13:27:56.810187173 +0100
+@@ -472,7 +472,11 @@
+               }\r
+ \r
+               //Search for the desired material\r
+-              MaterialPtr generatedMaterial = MaterialManager::getSingleton().getByName(materialSignature.str());\r
++              #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))\r
++                      MaterialPtr generatedMaterial = MaterialManager::getSingleton().getByName(materialSignature.str());\r
++              #else\r
++                      MaterialPtr generatedMaterial = MaterialManager::getSingleton().getByName(materialSignature.str()).staticCast<Ogre::Material>();\r
++              #endif\r
+               if (generatedMaterial.isNull())\r
+       {\r
+                       //Clone the material\r
+diff -U 3 -dHrN freeorion-0.4.4-orig/PagedGeometry/source/GrassLoader.cpp freeorion-0.4.4/PagedGeometry/source/GrassLoader.cpp
+--- freeorion-0.4.4-orig/PagedGeometry/source/GrassLoader.cpp  2015-01-12 13:16:19.470177578 +0100
++++ freeorion-0.4.4/PagedGeometry/source/GrassLoader.cpp       2015-01-12 13:31:39.330190235 +0100
+@@ -765,7 +765,11 @@
+ void GrassLayer::setMaterialName(const String &matName)\r
+ {\r
+       if (material.isNull() || matName != material->getName()){\r
+-              material = MaterialManager::getSingleton().getByName(matName);\r
++              #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))\r
++                      material = MaterialManager::getSingleton().getByName(matName);\r
++              #else\r
++                      material = MaterialManager::getSingleton().getByName(matName).staticCast<Material>();\r
++              #endif\r
+               if (material.isNull())\r
+                       OGRE_EXCEPT(Exception::ERR_INVALIDPARAMS, "The specified grass material does not exist", "GrassLayer::setMaterialName()");\r
+               shaderNeedsUpdate = true;\r
+@@ -1128,7 +1132,11 @@
+                       const String matName = material->getName() + "_" + vsName;\r
+ \r
+                       //Check if the desired material already exists (if not, create it)\r
+-                      MaterialPtr tmpMat = MaterialManager::getSingleton().getByName(matName);\r
++                      #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))\r
++                              MaterialPtr tmpMat = MaterialManager::getSingleton().getByName(matName);\r
++                      #else\r
++                              MaterialPtr tmpMat = MaterialManager::getSingleton().getByName(matName).staticCast<Material>();\r
++                      #endif\r
+                       if (tmpMat.isNull())\r
+                       {\r
+                               //Clone the original material\r
+@@ -1140,7 +1148,11 @@
+ \r
+                               //Check if the desired shader already exists (if not, compile it)\r
+                               String shaderLanguage;\r
+-                              HighLevelGpuProgramPtr vertexShader = HighLevelGpuProgramManager::getSingleton().getByName(vsName);\r
++                              #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))\r
++                                      HighLevelGpuProgramPtr vertexShader = HighLevelGpuProgramManager::getSingleton().getByName(vsName);\r
++                              #else\r
++                                      HighLevelGpuProgramPtr vertexShader = HighLevelGpuProgramManager::getSingleton().getByName(vsName).staticCast<HighLevelGpuProgram>();\r
++                              #endif\r
+                               if (vertexShader.isNull())\r
+                               {\r
+                                       if (Root::getSingleton().getRenderSystem()->getName() == "Direct3D9 Rendering Subsystem")\r
+diff -U 3 -dHrN freeorion-0.4.4-orig/PagedGeometry/source/ImpostorPage.cpp freeorion-0.4.4/PagedGeometry/source/ImpostorPage.cpp
+--- freeorion-0.4.4-orig/PagedGeometry/source/ImpostorPage.cpp 2015-01-12 13:16:19.470177578 +0100
++++ freeorion-0.4.4/PagedGeometry/source/ImpostorPage.cpp      2015-01-12 13:32:29.390190924 +0100
+@@ -402,7 +402,11 @@
+       //Set up materials\r
+       for (int o = 0; o < IMPOSTOR_YAW_ANGLES; ++o){\r
+       for (int i = 0; i < IMPOSTOR_PITCH_ANGLES; ++i){\r
+-              material[i][o] = MaterialManager::getSingleton().create(getUniqueID("ImpostorMaterial"), "Impostors");\r
++              #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))\r
++                      material[i][o] = MaterialManager::getSingleton().create(getUniqueID("ImpostorMaterial"), "Impostors");\r
++              #else\r
++                      material[i][o] = MaterialManager::getSingleton().create(getUniqueID("ImpostorMaterial"), "Impostors").staticCast<Material>();\r
++              #endif\r
+ \r
+               Material *m = material[i][o].getPointer();\r
+               Pass *p = m->getTechnique(0)->getPass(0);\r
+diff -U 3 -dHrN freeorion-0.4.4-orig/PagedGeometry/source/StaticBillboardSet.cpp freeorion-0.4.4/PagedGeometry/source/StaticBillboardSet.cpp
+--- freeorion-0.4.4-orig/PagedGeometry/source/StaticBillboardSet.cpp   2015-01-12 13:16:19.470177578 +0100
++++ freeorion-0.4.4/PagedGeometry/source/StaticBillboardSet.cpp        2015-01-12 13:34:51.270192876 +0100
+@@ -149,7 +149,11 @@
+                "}";\r
+          }\r
+ \r
+-         HighLevelGpuProgramPtr vertexShader = HighLevelGpuProgramManager::getSingleton().getByName("Sprite_vp");\r
++         #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))\r
++            HighLevelGpuProgramPtr vertexShader = HighLevelGpuProgramManager::getSingleton().getByName("Sprite_vp");\r
++         #else\r
++            HighLevelGpuProgramPtr vertexShader = HighLevelGpuProgramManager::getSingleton().getByName("Sprite_vp").staticCast<HighLevelGpuProgram>();\r
++         #endif\r
+          assert(vertexShader.isNull() && "Sprite_vp already exist");\r
+ \r
+          vertexShader = HighLevelGpuProgramManager::getSingleton().createProgram(\r
+@@ -257,7 +261,11 @@
+                "}";\r
+          }\r
+ \r
+-         HighLevelGpuProgramPtr vertexShader2 = HighLevelGpuProgramManager::getSingleton().getByName("SpriteFade_vp");\r
++         #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))\r
++            HighLevelGpuProgramPtr vertexShader2 = HighLevelGpuProgramManager::getSingleton().getByName("Sprite_vp");\r
++         #else\r
++            HighLevelGpuProgramPtr vertexShader2 = HighLevelGpuProgramManager::getSingleton().getByName("Sprite_vp").staticCast<HighLevelGpuProgram>();\r
++         #endif\r
+          assert(vertexShader2.isNull() && "SpriteFade_vp already exist");\r
+          vertexShader2 = HighLevelGpuProgramManager::getSingleton().createProgram("SpriteFade_vp",\r
+             ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, shaderLanguage, GPT_VERTEX_PROGRAM);\r
+@@ -574,7 +582,11 @@
+       else if (!mPtrMaterial.isNull())\r
+          SBMaterialRef::removeMaterialRef(mPtrMaterial);\r
+ \r
+-      mPtrMaterial = MaterialManager::getSingleton().getByName(materialName, resourceGroup);\r
++      #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))\r
++         mPtrMaterial = MaterialManager::getSingleton().getByName(materialName, resourceGroup);\r
++      #else\r
++         mPtrMaterial = MaterialManager::getSingleton().getByName(materialName, resourceGroup).staticCast<Material>();\r
++      #endif\r
+ \r
+       if (mFadeEnabled)\r
+       {\r
+@@ -590,7 +602,11 @@
+    }\r
+    else  // old GPU compatibility\r
+    {\r
+-      mPtrMaterial = MaterialManager::getSingleton().getByName(materialName, resourceGroup);\r
++      #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))\r
++         mPtrMaterial = MaterialManager::getSingleton().getByName(materialName, resourceGroup);\r
++      #else\r
++         mPtrMaterial = MaterialManager::getSingleton().getByName(materialName, resourceGroup).staticCast<Material>();\r
++      #endif\r
+       mpFallbackBillboardSet->setMaterialName(mPtrMaterial->getName(), mPtrMaterial->getGroup());\r
+       // SVA. Since Ogre 1.7.3 Ogre::BillboardSet have setMaterial(const MaterialPtr&) method\r
+    }\r
+diff -U 3 -dHrN freeorion-0.4.4-orig/PagedGeometry/source/WindBatchPage.cpp freeorion-0.4.4/PagedGeometry/source/WindBatchPage.cpp
+--- freeorion-0.4.4-orig/PagedGeometry/source/WindBatchPage.cpp        2015-01-12 13:16:19.470177578 +0100
++++ freeorion-0.4.4/PagedGeometry/source/WindBatchPage.cpp     2015-01-12 13:35:22.100193300 +0100
+@@ -467,7 +467,11 @@
+               }\r
+ \r
+               //Search for the desired material\r
+-              MaterialPtr generatedMaterial = MaterialManager::getSingleton().getByName(materialSignature.str());\r
++              #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))\r
++                      MaterialPtr generatedMaterial = MaterialManager::getSingleton().getByName(materialSignature.str());\r
++              #else\r
++                      MaterialPtr generatedMaterial = MaterialManager::getSingleton().getByName(materialSignature.str()).staticCast<Material>();\r
++              #endif\r
+               if (generatedMaterial.isNull())\r
+       {\r
+                       //Clone the material\r
+diff -U 3 -dHrN freeorion-0.4.4-orig/UI/CombatSetupWnd.cpp freeorion-0.4.4/UI/CombatSetupWnd.cpp
+--- freeorion-0.4.4-orig/UI/CombatSetupWnd.cpp 2015-01-12 13:16:18.650177567 +0100
++++ freeorion-0.4.4/UI/CombatSetupWnd.cpp      2015-01-12 13:17:12.200178304 +0100
+@@ -126,7 +126,11 @@
+             // HACK! This currently assumes all rings are starlane exclusion
+             // zones, so we only create one mesh for all RING's and reuse it;
+             // this may need to be generalized later.
+-            Ogre::MeshPtr ring_mesh = Ogre::MeshManager::getSingleton().getByName(RING_MESH_NAME);
++            #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))
++                              Ogre::MeshPtr ring_mesh = Ogre::MeshManager::getSingleton().getByName(RING_MESH_NAME);
++                      #else
++                              Ogre::MeshPtr ring_mesh = Ogre::MeshManager::getSingleton().getByName(RING_MESH_NAME).staticCast<Ogre::Mesh>();
++                      #endif
+             if (ring_mesh.isNull()) {
+                 Ogre::ManualObject manual_object("");
+                 manual_object.estimateVertexCount(unit_circle_vertices.size() * 2 + 2);
+@@ -152,7 +156,11 @@
+         }
+ 
+         case CombatSetupRegion::ELLIPSE: {
+-            Ogre::MeshPtr unit_circle_mesh = Ogre::MeshManager::getSingleton().getByName(UNIT_CIRCLE_MESH_NAME);
++            #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))
++                              Ogre::MeshPtr unit_circle_mesh = Ogre::MeshManager::getSingleton().getByName(UNIT_CIRCLE_MESH_NAME);
++                      #else
++                              Ogre::MeshPtr unit_circle_mesh = Ogre::MeshManager::getSingleton().getByName(UNIT_CIRCLE_MESH_NAME).staticCast<Ogre::Mesh>();
++                      #endif
+             if (unit_circle_mesh.isNull()) {
+                 Ogre::ManualObject manual_object("");
+                 manual_object.estimateVertexCount(unit_circle_vertices.size() + 2);
+@@ -478,8 +486,13 @@
+                 std::string base_material_name = ShipMaterialName(*ship->Design(), ship->Owner());
+                 std::string material_name = UNPLACEABLE_MATERIAL_PREFIX + base_material_name;
+                 if (!Ogre::MaterialManager::getSingleton().resourceExists(material_name)) {
+-                    Ogre::MaterialPtr unmodified_material =
+-                        Ogre::MaterialManager::getSingleton().getByName(base_material_name);
++                                      #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))
++                                              Ogre::MaterialPtr unmodified_material =
++                                                      Ogre::MaterialManager::getSingleton().getByName(base_material_name);
++                                      #else
++                                              Ogre::MaterialPtr unmodified_material =
++                                                      Ogre::MaterialManager::getSingleton().getByName(base_material_name).staticCast<Ogre::Material>();
++                                      #endif
+                     Ogre::MaterialPtr material = unmodified_material->clone(material_name);
+                     Ogre::Pass* pass = material->getTechnique(0)->getPass(1);
+                     assert(pass->hasFragmentProgram());
+diff -U 3 -dHrN freeorion-0.4.4-orig/UI/CombatWnd.cpp freeorion-0.4.4/UI/CombatWnd.cpp
+--- freeorion-0.4.4-orig/UI/CombatWnd.cpp      2015-01-12 13:16:18.650177567 +0100
++++ freeorion-0.4.4/UI/CombatWnd.cpp   2015-01-12 13:43:29.950200012 +0100
+@@ -329,8 +329,13 @@
+             Ogre::Entity* entity =
+                 scene_manager->createEntity("asteroid mesh " + base_name,
+                                             base_name + ".mesh");
+-            Ogre::MaterialPtr material =
+-                Ogre::MaterialManager::getSingleton().getByName("asteroid");
++            #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))
++                              Ogre::MaterialPtr material =
++                                      Ogre::MaterialManager::getSingleton().getByName("asteroid");
++                      #else
++                              Ogre::MaterialPtr material =
++                                      Ogre::MaterialManager::getSingleton().getByName("asteroid").staticCast<Ogre::Material>();
++                      #endif
+             std::string new_material_name = "asteroid material " + base_name;
+             material = material->clone(new_material_name);
+             material->getTechnique(0)->getPass(0)->getTextureUnitState(0)->
+@@ -905,16 +910,26 @@
+ 
+     // pick and assign star textures
+     {
+-        Ogre::MaterialPtr back_material =
+-            Ogre::MaterialManager::getSingleton().getByName("backgrounds/star_back");
++              #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))
++                      Ogre::MaterialPtr back_material =
++                              Ogre::MaterialManager::getSingleton().getByName("backgrounds/star_back");
++              #else
++                      Ogre::MaterialPtr back_material =
++                              Ogre::MaterialManager::getSingleton().getByName("backgrounds/star_back").staticCast<Ogre::Material>();
++              #endif
+         Ogre::Technique* technique = back_material->getTechnique(0);
+         technique->getPass(0)->getTextureUnitState(0)->setTextureName(base_name + "back.png");
+         technique->getPass(1)->getTextureUnitState(0)->setTextureName(base_name + "rainbow.png");
+         technique->getPass(2)->getTextureUnitState(0)->setTextureName(base_name + "rays.png");
+         technique->getPass(3)->getTextureUnitState(0)->setTextureName(base_name + "horizontal_flare.png");
+         technique->getPass(4)->getTextureUnitState(0)->setTextureName(base_name + "horizontal_flare.png");
+-        Ogre::MaterialPtr core_material =
+-            Ogre::MaterialManager::getSingleton().getByName("backgrounds/star_core");
++              #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))
++                      Ogre::MaterialPtr core_material =
++                              Ogre::MaterialManager::getSingleton().getByName("backgrounds/star_core");
++              #else
++                      Ogre::MaterialPtr core_material =
++                              Ogre::MaterialManager::getSingleton().getByName("backgrounds/star_core").staticCast<Ogre::Material>();
++              #endif
+         technique = core_material->getTechnique(0);
+         technique->getPass(0)->getTextureUnitState(0)->setTextureName(base_name + "core.png");
+ 
+@@ -1005,8 +1020,13 @@
+                 entity->setQueryFlags(UNSELECTABLE_OBJECT_MASK);
+                 std::string new_material_name =
+                     material_name + "_" + boost::lexical_cast<std::string>(orbit);
+-                Ogre::MaterialPtr material =
+-                    Ogre::MaterialManager::getSingleton().getByName(material_name);
++                              #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))
++                                      Ogre::MaterialPtr material =
++                                              Ogre::MaterialManager::getSingleton().getByName(material_name);
++                              #else
++                                      Ogre::MaterialPtr material =
++                                              Ogre::MaterialManager::getSingleton().getByName(material_name).staticCast<Ogre::Material>();
++                              #endif
+                 material = material->clone(new_material_name);
+                 m_planet_assets[orbit].second.push_back(material);
+                 material->getTechnique(0)->getPass(0)->getTextureUnitState(0)->
+@@ -1019,11 +1039,19 @@
+                 entity->setVisibilityFlags(REGULAR_OBJECTS_MASK);
+                 std::string new_material_name =
+                     material_name + "_" + boost::lexical_cast<std::string>(orbit);
+-                Ogre::MaterialPtr material =
+-                    Ogre::MaterialManager::getSingleton().getByName(
+-                        material_name == "planet" ?
+-                        PlanetMaterialName(base_name) :
+-                        material_name);
++                              #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))
++                                      Ogre::MaterialPtr material =
++                                              Ogre::MaterialManager::getSingleton().getByName(
++                                                      material_name == "planet" ?
++                                                      PlanetMaterialName(base_name) :
++                                                      material_name);
++                              #else
++                                      Ogre::MaterialPtr material =
++                                              Ogre::MaterialManager::getSingleton().getByName(
++                                                      material_name == "planet" ?
++                                                      PlanetMaterialName(base_name) :
++                                                      material_name).staticCast<Ogre::Material>();
++                              #endif
+                 material = material->clone(new_material_name);
+                 m_planet_assets[orbit].second.push_back(material);
+                 assert(entity->getNumSubEntities() == 1u);
+@@ -1046,9 +1074,15 @@
+                     entity->setRenderQueueGroup(ALPHA_OBJECTS_QUEUE);
+                     entity->setVisibilityFlags(REGULAR_OBJECTS_MASK);
+                     entity->setQueryFlags(UNSELECTABLE_OBJECT_MASK);
+-                    Ogre::MaterialPtr material =
+-                        Ogre::MaterialManager::getSingleton().getByName(
+-                            AtmosphereMaterialName(base_name));
++                                      #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))
++                                              Ogre::MaterialPtr material =
++                                                      Ogre::MaterialManager::getSingleton().getByName(
++                                                              AtmosphereMaterialName(base_name));
++                                      #else
++                                              Ogre::MaterialPtr material =
++                                                      Ogre::MaterialManager::getSingleton().getByName(
++                                                              AtmosphereMaterialName(base_name)).staticCast<Ogre::Material>();
++                                      #endif
+                     entity->setMaterialName(material->getName());
+                     m_planet_assets[orbit].second.push_back(material);
+                     node->attachObject(entity);
+@@ -1568,7 +1602,11 @@
+ 
+     const bool ENABLE_GLOW = GetOptionsDB().Get<bool>("combat.enable-glow");
+     Ogre::CompositorManager::getSingleton().setCompositorEnabled(m_viewport, "effects/glow", ENABLE_GLOW);
+-    Ogre::MaterialPtr material = Ogre::MaterialManager::getSingleton().getByName("backgrounds/star_back");
++      #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))
++              Ogre::MaterialPtr material = Ogre::MaterialManager::getSingleton().getByName("backgrounds/star_back");
++      #else
++              Ogre::MaterialPtr material = Ogre::MaterialManager::getSingleton().getByName("backgrounds/star_back").staticCast<Ogre::Material>();
++      #endif
+     material->getTechnique(0)->getPass(3)->setDepthCheckEnabled(!ENABLE_GLOW);
+     material->getTechnique(0)->getPass(4)->setDepthCheckEnabled(!ENABLE_GLOW);
+ 
+@@ -1618,8 +1656,13 @@
+ 
+         const int SAMPLES_PER_SIDE = 2;
+         const int TOTAL_SAMPLES = 5;
+-        Ogre::MaterialPtr core_material =
+-            Ogre::MaterialManager::getSingleton().getByName("backgrounds/star_core");
++              #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))
++                      Ogre::MaterialPtr core_material =
++                              Ogre::MaterialManager::getSingleton().getByName("backgrounds/star_core");
++              #else
++                      Ogre::MaterialPtr core_material =
++                              Ogre::MaterialManager::getSingleton().getByName("backgrounds/star_core").staticCast<Ogre::Material>();
++              #endif
+         const Ogre::Real STAR_CORE_SCALE_FACTOR =
+             core_material->getTechnique(0)->getPass(0)->getTextureUnitState(0)->getTextureUScale();
+         const Ogre::Real SAMPLE_INCREMENT =
+@@ -1743,8 +1786,13 @@
+     m_star_back_billboard->setColour(
+         Ogre::ColourValue(1.0, 1.0, 1.0, m_star_brightness_factor));
+ 
+-    Ogre::MaterialPtr back_material =
+-        Ogre::MaterialManager::getSingleton().getByName("backgrounds/star_back");
++      #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))
++              Ogre::MaterialPtr back_material =
++                      Ogre::MaterialManager::getSingleton().getByName("backgrounds/star_back");
++      #else
++              Ogre::MaterialPtr back_material =
++                      Ogre::MaterialManager::getSingleton().getByName("backgrounds/star_back").staticCast<Ogre::Material>();
++      #endif
+     back_material->getTechnique(0)->getPass(3)->getTextureUnitState(0)->setTextureUScroll(
+         m_initial_left_horizontal_flare_scroll + m_left_horizontal_flare_scroll_offset);
+     back_material->getTechnique(0)->getPass(4)->getTextureUnitState(0)->setTextureUScroll(
+@@ -1834,8 +1882,13 @@
+     assert(ship->Design());
+     const ShipDesign& ship_design = *ship->Design();
+ 
+-    Ogre::MaterialPtr ship_material =
+-        Ogre::MaterialManager::getSingleton().getByName("ship");
++      #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))
++              Ogre::MaterialPtr ship_material =
++                      Ogre::MaterialManager::getSingleton().getByName("ship");
++      #else
++              Ogre::MaterialPtr ship_material =
++                      Ogre::MaterialManager::getSingleton().getByName("ship").staticCast<Ogre::Material>();
++      #endif
+     std::string modified_material_name = ShipMaterialName(ship_design, ship->Owner());
+     Ogre::MaterialPtr& modified_material = m_ship_materials[modified_material_name];
+     if (!modified_material.get()) {
+diff -U 3 -dHrN freeorion-0.4.4-orig/UI/EntityRenderer.cpp freeorion-0.4.4/UI/EntityRenderer.cpp
+--- freeorion-0.4.4-orig/UI/EntityRenderer.cpp 2015-01-12 13:16:18.670177567 +0100
++++ freeorion-0.4.4/UI/EntityRenderer.cpp      2015-01-12 13:17:12.200178304 +0100
+@@ -123,9 +123,15 @@
+     renderTextures();
+ 
+     //Set up material
+-    material =
+-        Ogre::MaterialManager::getSingleton().create(
+-            getUniqueID("RenderedEntityMaterial"), "EntityRenderer");
++      #if (OGRE_VERSION < ((1 << 16) | (9 << 8) | 0))
++              material =
++                      Ogre::MaterialManager::getSingleton().create(
++                              getUniqueID("RenderedEntityMaterial"), "EntityRenderer");
++      #else
++              material =
++                      Ogre::MaterialManager::getSingleton().create(
++                              getUniqueID("RenderedEntityMaterial"), "EntityRenderer").staticCast<Ogre::Material>();
++      #endif
+ 
+     Ogre::Material* m = material.getPointer();
+     Ogre::Pass* p = m->getTechnique(0)->getPass(0);
index b84851cee7ee0b2ca95a790188212d66cc38db13..3b57d35270153b3f4dc38ad616a83529d3eeda52 100644 (file)
@@ -1,6 +1,6 @@
-# Copyright 1999-2013 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/games-strategy/freeorion/freeorion-0.4.3.ebuild,v 1.5 2013/10/07 08:08:35 tomka Exp $
+# $Header: /var/cvsroot/gentoo-x86/games-strategy/freeorion/freeorion-0.4.3.ebuild,v 1.6 2015/01/12 13:05:17 tomka Exp $
 
 EAPI=5
 
@@ -22,7 +22,7 @@ IUSE="cg"
 # The split version dev-games/gigi is not used anymore as of 0.4.3
 RDEPEND="
        !dev-games/gigi
-       dev-games/ogre[cg?,ois,opengl]
+       <dev-games/ogre-1.9[cg?,ois,opengl]
        dev-games/ois
        >=dev-libs/boost-1.47[python]
        media-libs/freealut
diff --git a/games-strategy/freeorion/freeorion-0.4.4.ebuild b/games-strategy/freeorion/freeorion-0.4.4.ebuild
new file mode 100644 (file)
index 0000000..a0cf349
--- /dev/null
@@ -0,0 +1,117 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/games-strategy/freeorion/freeorion-0.4.4.ebuild,v 1.1 2015/01/12 13:05:17 tomka Exp $
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_6 python2_7 )
+inherit cmake-utils python-any-r1 games
+
+DESCRIPTION="A free turn-based space empire and galactic conquest game"
+HOMEPAGE="http://www.freeorion.org"
+SRC_URI="http://dev.gentoo.org/~tomka/files/${P}.tar.bz2"
+
+LICENSE="GPL-2 LGPL-2.1 CC-BY-SA-3.0"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="cg"
+
+# Needs it's own version of GG(dev-games/gigi) which it ships.
+# The split version dev-games/gigi is not used anymore as of 0.4.3
+RDEPEND="
+       !dev-games/gigi
+       dev-games/ogre[cg?,ois,opengl]
+       dev-games/ois
+       >=dev-libs/boost-1.47[python]
+       media-libs/freealut
+       media-libs/libogg
+       media-libs/libsdl[X,opengl,video]
+       media-libs/libvorbis
+       media-libs/openal
+       sci-physics/bullet
+       sys-libs/zlib
+       virtual/opengl"
+DEPEND="${RDEPEND}
+       ${PYTHON_DEPS}
+       virtual/pkgconfig"
+
+# S="${WORKDIR}/${P}/${myPN}"
+CMAKE_USE_DIR="${S}"
+CMAKE_VERBOSE="1"
+
+pkg_setup() {
+       # build system is using FindPythonLibs.cmake which needs python:2
+       python-any-r1_pkg_setup
+       games_pkg_setup
+}
+
+src_prepare() {
+       # set OGRE plugin-dir
+       sed \
+               -e "s:PluginFolder=.*$:PluginFolder=$(pkg-config --variable=plugindir OGRE):" \
+               -i "${CMAKE_USE_DIR}"/ogre_plugins.cfg.in || die
+
+       if use cg ; then
+               # add cg ogre plugin to config
+               echo "Plugin=Plugin_CgProgramManager" \
+                       >> "${CMAKE_USE_DIR}"/ogre_plugins.cfg || die
+       fi
+
+       epatch "${FILESDIR}/ogre-1.9-compat.patch"
+
+       # parse subdir sets -O3
+       sed -e "s:-O3::" -i parse/CMakeLists.txt
+
+       # set revision for display in game -- update on bump!
+       sed -i -e 's/???/7708/' CMakeLists.txt
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DRELEASE_COMPILE_FLAGS=""
+               -DCMAKE_SKIP_RPATH=ON
+               )
+
+       cmake-utils_src_configure
+}
+
+src_compile() {
+       cmake-utils_src_compile
+}
+
+src_install() {
+       # data files
+       rm "${CMAKE_USE_DIR}"/default/COPYING || die
+       insinto "${GAMES_DATADIR}"/${PN}
+       doins -r "${CMAKE_USE_DIR}"/default || die
+
+       # bin
+       dogamesbin "${CMAKE_BUILD_DIR}"/${PN}{ca,d} || die
+       newgamesbin "${CMAKE_BUILD_DIR}"/${PN} ${PN}.bin || die
+       games_make_wrapper ${PN} \
+               "${GAMES_BINDIR}/${PN}.bin --resource-dir ./default" \
+               "${GAMES_DATADIR}/${PN}"
+
+       # lib
+       dogameslib "${CMAKE_BUILD_DIR}"/libfreeorion{common,parse}.so || die
+       dogameslib "${CMAKE_BUILD_DIR}"/libGiGi*.so || die
+
+       # config
+       insinto "${GAMES_SYSCONFDIR}"/${PN}
+       doins "${CMAKE_BUILD_DIR}"/ogre_plugins.cfg || die
+       doins "${CMAKE_USE_DIR}"/OISInput.cfg || die
+       # game uses relative paths
+       dosym "${GAMES_SYSCONFDIR}"/${PN}/ogre_plugins.cfg \
+               "${GAMES_DATADIR}"/${PN}/ogre_plugins.cfg || die
+       dosym "${GAMES_SYSCONFDIR}"/${PN}/OISInput.cfg \
+               "${GAMES_DATADIR}"/${PN}/OISInput.cfg || die
+
+       # other
+       dodoc "${CMAKE_USE_DIR}"/changelog.txt || die
+       newicon "${CMAKE_USE_DIR}"/default/data/art/icons/FO_Icon_32x32.png \
+               ${PN}.png || die
+       make_desktop_entry ${PN} ${PN} ${PN}
+
+       # permissions
+       prepgamesdirs
+}