diff options
author | V3n3RiX <venerix@koprulu.sector> | 2021-12-19 14:30:57 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2021-12-19 14:30:57 +0000 |
commit | 43e5c605b9628aa112d3779b944c69199f25d0cd (patch) | |
tree | 693b0c6f4d38ce0d2ba8a6d329cdfd5b2c78726a /games-strategy | |
parent | 8b0ed1961f42c2236d9c876a38381d58e7ef74ec (diff) |
games-strategy/warzone2100 : attempt to fix vulkan build
Diffstat (limited to 'games-strategy')
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 +} |