summaryrefslogtreecommitdiffstats
path: root/games/0ad
diff options
context:
space:
mode:
Diffstat (limited to 'games/0ad')
-rw-r--r--games/0ad/0ad-fcollada.patch41
-rw-r--r--games/0ad/0ad.SlackBuild23
-rw-r--r--games/0ad/icu68.patch17
3 files changed, 76 insertions, 5 deletions
diff --git a/games/0ad/0ad-fcollada.patch b/games/0ad/0ad-fcollada.patch
new file mode 100644
index 0000000000..1a5ba23837
--- /dev/null
+++ b/games/0ad/0ad-fcollada.patch
@@ -0,0 +1,41 @@
+diff -up 0ad-0.0.23b-alpha/libraries/source/fcollada/src/FColladaPlugins/FArchiveXML/FArchiveXML.h.orig 0ad-0.0.23b-alpha/libraries/source/fcollada/src/FColladaPlugins/FArchiveXML/FArchiveXML.h
+--- 0ad-0.0.23b-alpha/libraries/source/fcollada/src/FColladaPlugins/FArchiveXML/FArchiveXML.h.orig 2020-03-30 16:28:20.011982827 -0300
++++ 0ad-0.0.23b-alpha/libraries/source/fcollada/src/FColladaPlugins/FArchiveXML/FArchiveXML.h 2020-03-31 11:43:27.669098382 -0300
+@@ -553,7 +553,16 @@ public:
+
+ static void WritePhysicsRigidBodyParameters(FCDPhysicsRigidBodyParameters* physicsRigidBodyParameters, xmlNode* techniqueNode);
+ template <class TYPE, int QUAL>
+- static xmlNode* AddPhysicsParameter(xmlNode* parentNode, const char* name, FCDParameterAnimatableT<TYPE,QUAL>& value);
++ static xmlNode* AddPhysicsParameter(xmlNode* parentNode, const char* name, FCDParameterAnimatableT<TYPE,QUAL>& value) {
++ xmlNode* paramNode = AddChild(parentNode, name);
++ AddContent(paramNode, FUStringConversion::ToString((TYPE&) value));
++ if (value.IsAnimated())
++ {
++ const FCDAnimated* animated = value.GetAnimated();
++ FArchiveXML::WriteAnimatedValue(animated, paramNode, name);
++ }
++ return paramNode;
++ }
+
+
+ //
+diff -up 0ad-0.0.23b-alpha/libraries/source/fcollada/src/FColladaPlugins/FArchiveXML/FAXPhysicsExport.cpp.orig 0ad-0.0.23b-alpha/libraries/source/fcollada/src/FColladaPlugins/FArchiveXML/FAXPhysicsExport.cpp
+--- 0ad-0.0.23b-alpha/libraries/source/fcollada/src/FColladaPlugins/FArchiveXML/FAXPhysicsExport.cpp.orig 2008-09-07 19:13:25.000000000 -0300
++++ 0ad-0.0.23b-alpha/libraries/source/fcollada/src/FColladaPlugins/FArchiveXML/FAXPhysicsExport.cpp 2020-03-31 11:43:24.577115067 -0300
+@@ -329,16 +329,3 @@ void FArchiveXML::WritePhysicsRigidBodyP
+ FArchiveXML::LetWriteObject(physicsRigidBodyParameters->GetPhysicsShape(i), techniqueNode);
+ }
+ }
+-
+-template <class TYPE, int QUAL>
+-xmlNode* FArchiveXML::AddPhysicsParameter(xmlNode* parentNode, const char* name, FCDParameterAnimatableT<TYPE,QUAL>& value)
+-{
+- xmlNode* paramNode = AddChild(parentNode, name);
+- AddContent(paramNode, FUStringConversion::ToString((TYPE&) value));
+- if (value.IsAnimated())
+- {
+- const FCDAnimated* animated = value.GetAnimated();
+- FArchiveXML::WriteAnimatedValue(animated, paramNode, name);
+- }
+- return paramNode;
+-}
diff --git a/games/0ad/0ad.SlackBuild b/games/0ad/0ad.SlackBuild
index 514f61c116..0b6bfa6588 100644
--- a/games/0ad/0ad.SlackBuild
+++ b/games/0ad/0ad.SlackBuild
@@ -72,14 +72,20 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+unset CPPFLAGS
+
export CFLAGS="$SLKCFLAGS"
-export CXXFLAGS="$SLKCFLAGS -fpermissive"
-# and yes, it's really necessary to set CPPFLAGS like this :(
-export CPPFLAGS="$SLKCFLAGS -fpermissive"
+export CXXFLAGS="$SLKCFLAGS -DU_USING_ICU_NAMESPACE=1"
export LDFLAGS="-L/usr/lib${LIBDIRSUFFIX}"
+export SDL2_CONFIG="/usr/bin/sdl2-config"
-# Fix boost names
-sed -i 's/-mt//g' build/premake/extern_libs4.lua
+# Fix boost names, include paths and remove isystem
+sed -i 's|-mt||g' build/premake/extern_libs5.lua
+sed -i 's|/usr/local/include|/usr/include|' build/premake/{extern_libs5.lua,premake5.lua}
+sed -i 's|-isystem |-I|' build/premake/premake5/{src/tools/gcc.lua,tests/tools/test_gcc.lua}
+
+sed -i '/third_party/a #include <deque>' source/ps/CLogger.h
+sed -i '/ps\/Profiler2/a #include <stack>' source/ps/Profiler2GPU.cpp
#allow for ATLAS to be yes.
[ "x$ATLAS" = "xyes" ]&& ATLAS="enable"
@@ -90,12 +96,19 @@ patch -p1 < $CWD/disable-root-check.patch
#sourced from https://code.wildfiregames.com/file/data/nryu3qhun4v6uroyiqoc/PHID-FILE-osgvknec7zmfuja5xqq4/D1852.diff
patch -p2 < $CWD/D1852.diff
+# Patch for gcc >= 10.x and icu4c >= 68.x
+patch -p1 < $CWD/0ad-fcollada.patch
+patch -p0 < $CWD/icu68.patch
+
build/workspaces/update-workspaces.sh \
+ --without-pch \
--bindir=/usr/games \
--datadir=/usr/share/games/0ad \
--libdir=/usr/lib${LIBDIRSUFFIX}/0ad \
--${ATLAS:-disable}-atlas
+sed -i 's|-isystem |-I|g' build/workspaces/gcc/*.make
+
make CONFIG=Release -C build/workspaces/gcc
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/0ad
diff --git a/games/0ad/icu68.patch b/games/0ad/icu68.patch
new file mode 100644
index 0000000000..5e9199d895
--- /dev/null
+++ b/games/0ad/icu68.patch
@@ -0,0 +1,17 @@
+Regressed by https://github.com/unicode-org/icu/commit/c3fe7e09d844
+
+../../../source/i18n/L10n.cpp:208:82: error: use of undeclared identifier 'TRUE'
+ currentLocaleIsOriginalGameLocale = (currentLocale == icu::Locale::getUS()) == TRUE;
+ ^
+
+--- source/i18n/L10n.cpp.orig 2018-04-10 18:13:32 UTC
++++ source/i18n/L10n.cpp
+@@ -205,7 +205,7 @@ void L10n::ReevaluateCurrentLocaleAndReload()
+ else
+ {
+ GetDictionaryLocale(locale, currentLocale);
+- currentLocaleIsOriginalGameLocale = (currentLocale == icu::Locale::getUS()) == TRUE;
++ currentLocaleIsOriginalGameLocale = (currentLocale == icu::Locale::getUS()) == true;
+ useLongStrings = false;
+ }
+ LoadDictionaryForCurrentLocale();