summaryrefslogtreecommitdiff
path: root/games-strategy
diff options
context:
space:
mode:
Diffstat (limited to 'games-strategy')
-rw-r--r--games-strategy/warzone2100/Manifest2
-rw-r--r--games-strategy/warzone2100/files/warzone-vulkan.patch40
-rw-r--r--games-strategy/warzone2100/files/warzone2100-4.1.3-no-compress-manpages.patch60
-rw-r--r--games-strategy/warzone2100/warzone2100-4.2.2-r10.ebuild117
4 files changed, 219 insertions, 0 deletions
diff --git a/games-strategy/warzone2100/Manifest b/games-strategy/warzone2100/Manifest
new file mode 100644
index 00000000..1bc08eb9
--- /dev/null
+++ b/games-strategy/warzone2100/Manifest
@@ -0,0 +1,2 @@
+DIST warzone2100-4.2.2.tar.xz 338585896 BLAKE2B e90ff6f5843a1750971a2cb7e77aac1e7c03ebeae90ea112d1eb735ea4a9cfee35de860e52f81824cde69543af6172ee630b6451ea39c141c188e4469f9200b9 SHA512 ea02207a27a01114daaf0819a98a63a5189570844dd69f50f493a1caafab7c05d85fb0d5c8a8b1b061ee3a050081e9786a1c090f4490134e93e8bbfa1903bd1b
+DIST warzone2100-videos-2.2.wz 571937134 BLAKE2B 60b70a71bd920e2d72ded5d519b17db2f3db4b0289edadeb58059a21aba7038b95219dc44cb807754461d1a9bdca60f0d7698be68622b8bd64a55efa949622d3 SHA512 ca1a1af51296afdaca137114821508c5783f077090e665eae0f6df895855f57c43f84434706309e819417f5f35d1c649bd14e96dc9fbbb1252d30a4f9a223cf6
diff --git a/games-strategy/warzone2100/files/warzone-vulkan.patch b/games-strategy/warzone2100/files/warzone-vulkan.patch
new file mode 100644
index 00000000..08b3ef7e
--- /dev/null
+++ b/games-strategy/warzone2100/files/warzone-vulkan.patch
@@ -0,0 +1,40 @@
+diff --git a/lib/ivis_opengl/gfx_api_vk.cpp b/lib/ivis_opengl/gfx_api_vk.cpp
+index 594d127f70..419b8a7644 100644
+--- a/lib/ivis_opengl/gfx_api_vk.cpp
++++ b/lib/ivis_opengl/gfx_api_vk.cpp
+@@ -477,7 +477,7 @@ void BlockBufferAllocator::allocateNewBlock(uint32_t minimumSize)
+ if (result != vk::Result::eSuccess)
+ {
+ // Failed to allocate memory!
+- throwResultException( result, "vmaCreateBuffer" );
++ vk::throwResultException( result, "vmaCreateBuffer" );
+ }
+
+ if (autoMap)
+@@ -1304,7 +1304,7 @@ VkPSO::VkPSO(vk::Device _dev,
+ object = std::move(result.value);
+ break;
+ default:
+- throwResultException(result.result, "createGraphicsPipeline");
++ vk::throwResultException(result.result, "createGraphicsPipeline");
+ }
+ }
+
+@@ -1368,7 +1368,7 @@ void VkBuf::allocateBufferObject(const std::size_t& size)
+ if (result != vk::Result::eSuccess)
+ {
+ // Failed to allocate memory!
+- throwResultException( result, "vmaCreateBuffer" );
++ vk::throwResultException( result, "vmaCreateBuffer" );
+ }
+
+ buffer_size = size;
+@@ -1486,7 +1486,7 @@ VkTexture::VkTexture(const VkRoot& root, const std::size_t& mipmap_count, const
+ if (result != vk::Result::eSuccess)
+ {
+ // Failed to allocate memory!
+- throwResultException( result, "vmaCreateImage" );
++ vk::throwResultException( result, "vmaCreateImage" );
+ }
+
+ const auto imageViewCreateInfo = vk::ImageViewCreateInfo()
diff --git a/games-strategy/warzone2100/files/warzone2100-4.1.3-no-compress-manpages.patch b/games-strategy/warzone2100/files/warzone2100-4.1.3-no-compress-manpages.patch
new file mode 100644
index 00000000..b90ad05b
--- /dev/null
+++ b/games-strategy/warzone2100/files/warzone2100-4.1.3-no-compress-manpages.patch
@@ -0,0 +1,60 @@
+https://bugs.gentoo.org/808120
+
+From e65b71cec99b2c3a4d0ed6aa448e7a2dc28fabac Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Tue, 17 Aug 2021 22:22:40 +0100
+Subject: [PATCH] Don't compress manpages
+
+---
+ doc/CMakeLists.txt | 34 ++++++----------------------------
+ 1 file changed, 6 insertions(+), 28 deletions(-)
+
+diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
+index 3d27a1a..f3c702b 100644
+--- a/doc/CMakeLists.txt
++++ b/doc/CMakeLists.txt
+@@ -236,35 +236,13 @@ install(FILES ${wz2100_doc_FILES} DESTINATION "${CMAKE_INSTALL_DOCDIR}${WZ_OUTPU
+ if(UNIX)
+ # Man-page gzip and installation
+
+- find_program(GZIP_BIN NAMES gzip PATHS /bin /usr/bin /usr/local/bin)
+- if (GZIP_BIN)
+- set(_warzone2100_6_uncompressed_orig "${CMAKE_CURRENT_BINARY_DIR}/warzone2100.6")
+- set(_warzone2100_6_uncompressed "${CMAKE_CURRENT_BINARY_DIR}/warzone2100${WZ_OUTPUT_NAME_SUFFIX}.6")
+- set(_warzone2100_6_compressed "${_warzone2100_6_uncompressed}.gz")
+-
+- add_custom_target(wz2100_manpages ALL)
+- set_property(TARGET wz2100_manpages PROPERTY FOLDER "doc")
+- add_dependencies(wz2100_manpages wz2100_doc)
+-
+- if (NOT "${_warzone2100_6_uncompressed_orig}" STREQUAL "${_warzone2100_6_uncompressed}")
+- add_custom_command(
+- TARGET wz2100_manpages
+- COMMAND ${CMAKE_COMMAND} -E copy "${_warzone2100_6_uncompressed_orig}" "${_warzone2100_6_uncompressed}"
+- COMMAND ${GZIP_BIN} -n -c ${_warzone2100_6_uncompressed} > ${_warzone2100_6_compressed}
+- VERBATIM
+- )
+- else()
+- add_custom_command(
+- TARGET wz2100_manpages
+- COMMAND ${GZIP_BIN} -n -c ${_warzone2100_6_uncompressed} > ${_warzone2100_6_compressed}
+- VERBATIM
+- )
+- endif()
++ set(_warzone2100_6 "${CMAKE_CURRENT_BINARY_DIR}/warzone2100${WZ_OUTPUT_NAME_SUFFIX}.6")
+
+- install(FILES "${_warzone2100_6_compressed}" DESTINATION "${CMAKE_INSTALL_MANDIR}/man6" COMPONENT Manpages)
+- else()
+- message( WARNING "Unable to find gzip tool; skipping Unix man page generation" )
+- endif()
++ add_custom_target(wz2100_manpages ALL)
++ set_property(TARGET wz2100_manpages PROPERTY FOLDER "doc")
++ add_dependencies(wz2100_manpages wz2100_doc)
++
++ install(FILES "${_warzone2100_6}" DESTINATION "${CMAKE_INSTALL_MANDIR}/man6" COMPONENT Manpages)
+ endif()
+
+ set(wz2100_doc_IMAGES_FILES ${wz2100_doc_IMAGES_FILES} PARENT_SCOPE)
+--
+2.33.0
+
diff --git a/games-strategy/warzone2100/warzone2100-4.2.2-r10.ebuild b/games-strategy/warzone2100/warzone2100-4.2.2-r10.ebuild
new file mode 100644
index 00000000..2ceaf842
--- /dev/null
+++ b/games-strategy/warzone2100/warzone2100-4.2.2-r10.ebuild
@@ -0,0 +1,117 @@
+# Copyright 2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PLOCALES="af_ZA bg_BG ca_ES cs da de el en_GB eo es et_EE fa_IR fi fr fy ga he_IL hr hu id_ID id it ko la lt nb nl pl pt_BR pt ro ru sk sl tr tt_RU uk_UA zh_CN zh_TW"
+inherit cmake plocale xdg
+
+MY_PV=$(ver_cut 1-2)
+VIDEOS_PV=2.2
+VIDEOS_P=${PN}-videos-${VIDEOS_PV}.wz
+DESCRIPTION="3D real-time strategy game"
+HOMEPAGE="https://wz2100.net/"
+SRC_URI="mirror://sourceforge/warzone2100/releases/${PV}/${PN}_src.tar.xz -> ${P}.tar.xz
+ videos? ( mirror://sourceforge/warzone2100/warzone2100/Videos/${VIDEOS_PV}/high-quality-en/sequences.wz -> ${VIDEOS_P} )"
+S="${WORKDIR}/${PN}"
+
+LICENSE="GPL-2+ CC-BY-SA-3.0 public-domain vulkan? ( GPL-3 )"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+# Upstream requested debug support
+IUSE="debug discord nls videos vulkan"
+
+CDEPEND="
+ >=dev-games/physfs-2[zip]
+ dev-db/sqlite:3
+ >=dev-libs/libsodium-1.0.14:=
+ media-libs/freetype:2
+ media-libs/harfbuzz:=
+ media-libs/libogg
+ media-libs/libpng:=
+ media-libs/libsdl2[opengl,video,X]
+ media-libs/libtheora
+ media-libs/libvorbis
+ media-libs/openal
+ net-libs/miniupnpc:=
+ net-misc/curl
+ sys-libs/zlib
+ nls? ( virtual/libintl )
+ vulkan? ( media-libs/libsdl2:=[vulkan] )
+"
+DEPEND="
+ ${CDEPEND}
+ dev-libs/fribidi
+ media-libs/fontconfig
+"
+RDEPEND="
+ ${CDEPEND}
+ media-fonts/dejavu
+"
+BDEPEND="
+ app-arch/zip
+ app-text/asciidoc
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+"
+
+HTML_DOCS=( doc/quickstartguide.html doc/docbook-xsl.css doc/ScriptingManual.htm )
+DOCS=( README.md doc/images doc/Scripting.md doc/js-globals.md )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.1.3-no-compress-manpages.patch
+ "${FILESDIR}"/${PN}-vulkan.patch
+)
+
+src_unpack() {
+ unpack ${P}.tar.xz
+}
+
+src_prepare() {
+ sed -i -e 's/#top_builddir/top_builddir/' po/Makevars || die
+
+ # Delete translations we're not using
+ cleanup_po() {
+ local locale=${1}
+ einfo "Cleaning up disabled locale: ${locale}"
+ rm po/${locale}.po || die
+ }
+
+ plocale_for_each_disabled_locale cleanup_po
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DWZ_DISTRIBUTOR="Gentoo Linux"
+ -DWZ_ENABLE_WARNINGS_AS_ERRORS=OFF
+ -DWZ_ENABLE_BACKEND_VULKAN=$(usex vulkan)
+ -DBUILD_SHARED_LIBS=OFF
+ -DENABLE_NLS=$(usex nls)
+ -DENABLE_DISCORD=$(usex discord)
+ )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+
+ asciidoc -b html5 doc/quickstartguide.asciidoc || die
+}
+
+src_install() {
+ cmake_src_install
+
+ rm "${ED}"/usr/bin/.portable || die
+
+ # We cover licencing within the ebuild itself
+ rm "${ED}"/usr/share/doc/${PF}/COPYING* \
+ "${ED}"/usr/share/doc/${PF}/copyright || die
+
+ if use videos ; then
+ insinto /usr/share/${PN}
+ newins "${DISTDIR}"/${VIDEOS_P} sequences.wz
+ fi
+}