diff options
Diffstat (limited to 'games-simulation/EmptyEpsilon')
5 files changed, 153 insertions, 0 deletions
diff --git a/games-simulation/EmptyEpsilon/EmptyEpsilon-2022.03.16.ebuild b/games-simulation/EmptyEpsilon/EmptyEpsilon-2022.03.16.ebuild new file mode 100644 index 000000000000..3ab9976cc817 --- /dev/null +++ b/games-simulation/EmptyEpsilon/EmptyEpsilon-2022.03.16.ebuild @@ -0,0 +1,92 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake toolchain-funcs + +# basics_universal version +MY_BU_VER="1_15_update2" +# meshoptimizer version +MY_MO_VER="0.16" + +DESCRIPTION="A spaceship bridge simulator game" +HOMEPAGE="https://daid.github.io/EmptyEpsilon/" +# This bundles SeriousProton as the build system does not support using +# a separate SeriousProton instance (and currently EmptyEpsilon seems to +# be the only consumer). +SRC_URI=" + https://github.com/daid/EmptyEpsilon/archive/EE-${PV}.tar.gz -> EmptyEpsilon-${PV}.tar.gz + https://github.com/daid/SeriousProton/archive/EE-${PV}.tar.gz -> SeriousProton-${PV}.tar.gz + https://github.com/BinomialLLC/basis_universal/archive/refs/tags/v${MY_BU_VER}.tar.gz -> basis_universal_${MY_BU_VER}.tar.gz + https://github.com/zeux/meshoptimizer/archive/refs/tags/v${MY_MO_VER}.tar.gz -> meshoptimizer-${MY_MO_VER}.tar.gz +" + +# EmptyEpsilon is mostly licensed under GPL, however the art ressources +# use Creative Commons and the bundled SeriousProton is MIT-licensed. +LICENSE="Apache-2.0 GPL-2 CC-BY-SA-3.0 MIT" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + dev-cpp/nlohmann_json + media-libs/freetype + media-libs/libsdl2 + >=media-libs/glm-0.9.9.8 +" +DEPEND="${RDEPEND}" + +S="${WORKDIR}/EmptyEpsilon-EE-${PV}" + +PATCHES=( + "${FILESDIR}/${PN}-cmake-meshoptimizer.patch" +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == "binary" ]] && return + + if tc-is-gcc; then + if [[ $(gcc-major-version) -lt 11 ]]; then + # ld: /usr/lib64/libsfml-audio.so: undefined reference to `std::__throw_bad_array_new_length()@GLIBCXX_3.a4.29' + eerror "${PN} requires GCC >= 11. Run gcc-config to switch your default compiler." + die "Need at least GCC >= 11" + fi + fi +} + +src_prepare() { + cmake_src_prepare + + local -A externals=() + externals["${BUILD_DIR}/SeriousProton/externals/basis"]="${WORKDIR}/basis_universal-${MY_BU_VER}" + externals["${BUILD_DIR}/externals/meshoptimizer"]="${WORKDIR}/meshoptimizer-${MY_MO_VER}" + local link + for link in "${!externals[@]}"; do + local external_dir=$(dirname "${link}") + if [[ ! -d "${external_dir}" ]]; then + mkdir -p "${external_dir}" || die + fi + local target="${externals[${link}]}" + ln -rs "${target}" "${link}" || die + done + + local serious_proton_patches=( + "${FILESDIR}/SeriousProton-cmake.patch" + "${FILESDIR}/SeriousProton-Add-missing-include-memory-to-websocket.h.patch" + ) + eapply --directory="${WORKDIR}/SeriousProton-EE-${PV}" \ + "${serious_proton_patches[@]}" +} + +src_configure() { + local version=( $(ver_rs 1- ' ') ) + local mycmakeargs=( + -DSERIOUS_PROTON_DIR="${WORKDIR}/SeriousProton-EE-${PV}/" + -DCPACK_PACKAGE_VERSION="${PV}" + -DCPACK_PACKAGE_VERSION_MAJOR="${version[0]}" + -DCPACK_PACKAGE_VERSION_MINOR="${version[1]}" + -DCPACK_PACKAGE_VERSION_PATCH="${version[2]}" + ) + + cmake_src_configure +} diff --git a/games-simulation/EmptyEpsilon/Manifest b/games-simulation/EmptyEpsilon/Manifest index 770ad09aac87..19ead49fdf2b 100644 --- a/games-simulation/EmptyEpsilon/Manifest +++ b/games-simulation/EmptyEpsilon/Manifest @@ -1,7 +1,15 @@ AUX EmptyEpsilon-Install-EmptyEpsilon.desktop.patch 1170 BLAKE2B e844399b993374b05a6ebe80d66b0845f2170aaf2a40a51fdc6991d15a175fa5e8654787d7722154844fae4bfb399faf1c0367cc9bd9d99cc2998a715039c491 SHA512 d64d1b6cfcd9bed65b03a065f91e838c124bed00d98de71a69493e2725c8411be1d8d3f3559af53f94cfd7d867fa8b23521333cd53b2004fe8b24f441904f000 AUX EmptyEpsilon-Make-CMake-call-find_package-glm.patch 1056 BLAKE2B 9522b7e2b45531ebd82e1f454a889ccd4c688adcbcdb753ca3c0c23ee2f0b94ed9537956bbbd8faca8305065017daf178278d5c14661d68de24d9c008339d6f2 SHA512 c6ccddf2a9f6fc7342428d5c197bec6fc01f24e3c9c9aa19bbccedba3c16bd825f59566fb0239b64bdd3914abfd584382742544f79c4266eef6e4ee7aabf3238 +AUX EmptyEpsilon-cmake-meshoptimizer.patch 457 BLAKE2B fcef3984e5154ea1819109b89398be0c519f699296d7f64070060cbce888fa8f8c12aac77f9db14c607ef8f7499338e41ef84cb6c6778b2e5198f9e0d795ae77 SHA512 c171fb453ff71c5925508cf6eeee821dadfd95b38470596f5719de1f711eaba31a361289e5f3efe31bc83b778aa5850f1c3a1fa766fb1de98aa6e8ca8938b82e +AUX SeriousProton-Add-missing-include-memory-to-websocket.h.patch 706 BLAKE2B 12129f7eca18439840bbbf53968ec0f950158dd01659bf7923a126b1176678613c704e9b00f7817b281095d5ecf859d29832295ab19b8fc63526882f565aa31f SHA512 3be656fa7c883e91df93085d8b5cc296d4912723b785472c187abff3e51562d5f0b82a2fea6bcd47c58dc00294b9302cfb6a97256456e990f246ba60bad6f725 AUX SeriousProton-Unbundle-json11.patch 722 BLAKE2B ab12cf044d38bc78eac3d4fdd7f3c9db062784177e848ca62135b356fec88be9876fa98f23d1195e3c3a2ef791166cb3c0fe220bce9c53a667b628a2e3602eb4 SHA512 da912f148738a409dd1eee4a8a926930ed31220c9b6477eb8a89da797dd659e2a576ca44875410cbc46c86f7d5b6e44037ed3f44c8d7ecd5a4680f12f626f013 +AUX SeriousProton-cmake.patch 450 BLAKE2B 1f1585eda5dcf7980d4439e1485edf4363dba5378c968f387c3b978eee9a9c5d7bdd406dcdc207dbe1e93f1efdf88285995cc3a5a414e1dc4566123e7685388f SHA512 bc09fa1047f1cc33c5d27ffd640d6e06623f83bb49263786bdab25e3fa353fbddef4d15203197ecf58eac696f92f27b47b9eae67a872a49bda2c11579741dbcd DIST EmptyEpsilon-2021.06.23.tar.gz 285211647 BLAKE2B 813b7e02ff7f046b7f28139063441eb421861b720c7b55d25930d3a418211fefdce7ac0e6ab705b4afe52df58f85a9298ff3e6be883a841e6eb9f7037eca297b SHA512 209ea68d99ef5ef53f1e3484d6471cafc01d4cb6505609a5b41d468387147127b4b4bbc20af75404d2cdef3d3cfb37bbb7f6fb3ae336d2f7e264e9c470ad7764 +DIST EmptyEpsilon-2022.03.16.tar.gz 258014053 BLAKE2B d447518c6887b5969bce48abc042a259733a6845a49ba767b274d17c1b0e28a025443d073563e269365837191439f7963f3a3775c58b143e97cef7b7c0cef336 SHA512 63f351be1af792be0ce8b1171ea14dd9f3ab75825ca9df48f7a7bfbc3cedfe05183f59896a51cd4e1f4e977aa5c9386159716dcc206afd7a1adab1df7c35e062 DIST SeriousProton-2021.06.23.tar.gz 1181117 BLAKE2B 433280b7f6994bed0b86ffc4135a1e91bd9521c508b875332d17dc041da6b77a4260de784b6b75e79aab072d6bc68108a8b6b4949d674670f1d13ed1abe90d7e SHA512 4519801c30cd87436704023090ce39299573b02637a86b0d5c6ac0f4e99b4bddc6724b2b660edfd29d33a908b67268409a8c47dab7b5d59958a5abd52d5610bf +DIST SeriousProton-2022.03.16.tar.gz 2671635 BLAKE2B 9fdb58d50e7f3522678efe14b753016c4d2e3341f2e3b78ede00815e4f6a6361eb635016c9cdf0ce235a0bb35fb813b61790a5b0d1522a1e8afe2f3594674341 SHA512 74a06c69a3f49789b35a6e5795a7b1de1b7e79d36c956a92e1383f9983489319060c62f3ee6349e26ac985a5121b4e60cf7a3546ec78b3a830e30c0c99ccd023 +DIST basis_universal_1_15_update2.tar.gz 13283133 BLAKE2B 5400d23f86dd581da1bc96c1b95eae58f3c97b5412ad1d09d7f4ffd2ae7cae6cb14330795380e253579cc17f1ee16c91555229268219c300905da1420c0d8717 SHA512 a898a057b57ac64f6c0bf5fce0b599e23421ccdd015ea7bb668bce8b9292ef55b098f3d05854a2fb5363959932b75cd0a842664ae7d4f71f3537dc11301c1b32 +DIST meshoptimizer-0.16.tar.gz 342571 BLAKE2B 2b4e244ea3676f109c904261d47bd0e7b2ad440f23d65325d34281ed13ac09657116c96b5a56860a0107479773b58c21018c8825b314f87a05bce38341fd75c1 SHA512 cc6d28359fb99a615e1046a4af1b247cbc6ea0266d9e7f41ea0516c1fc09fa1e67376071daf138a126c77bca3baf9d565636ed0e3adf045f1a08498c38b7a7e7 EBUILD EmptyEpsilon-2021.06.23-r1.ebuild 2018 BLAKE2B 61ada37ae1aa034376f7cc1a1c602563a52174662e27ba30299460d781e3a47c1e744efad668125731708ab2cb0b4ba2da44b3de2c7ec62193acb93c51993e1c SHA512 59af1a09e6b7fec6c089cee6e3d01d57c5fbfd71d78aa1e78101052b7fa6deaf272f2e5c6786fcc5ad0c602e54577de346ab357ec7791ce1c3824911000b6124 +EBUILD EmptyEpsilon-2022.03.16.ebuild 2845 BLAKE2B 0557f1d5268c807a064e8a22d0504594c632d4dbc28e0ac25f0042fcea6cb50d7c9c0eb492c220c601a30f1c6d640b5eac7ce421dbc786b455ec32f767d91edf SHA512 523e2394616a0c54fd391f5ec450f8dc806bbbb472e3121800843b1a23195c17ca43fbf7213b2205dbedd0b5a3b082871f12a2e7c51539fa0864fa591ac5ed9f MISC metadata.xml 247 BLAKE2B f18c471812d5b8c75f2e05c4fb556108fb93554b59ee61a8215803f2654854a7401fcd62964192c228bfebfb52ae4573cfd24b29a944630c8c733d154d2b0d9a SHA512 cea16f7db3110bd4629b9265d5acdec6d70877330664f8e83f726002eb69aec7f822e9cde9c7da900451cdef60f1ceba373dfe73c73f82173bbf1d2f9f7338b7 diff --git a/games-simulation/EmptyEpsilon/files/EmptyEpsilon-cmake-meshoptimizer.patch b/games-simulation/EmptyEpsilon/files/EmptyEpsilon-cmake-meshoptimizer.patch new file mode 100644 index 000000000000..d948d6923e39 --- /dev/null +++ b/games-simulation/EmptyEpsilon/files/EmptyEpsilon-cmake-meshoptimizer.patch @@ -0,0 +1,15 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -133,9 +133,9 @@ else() + endif() + + if(NOT meshoptimizer_POPULATED) +- if(COMMAND FetchContent_Populate) +- FetchContent_Populate(meshoptimizer) +- endif() ++ set(meshoptimizer_SOURCE_DIR "${EXTERNALS_DIR}/meshoptimizer") ++ set(meshoptimizer_BINARY_DIR "${PROJECT_BINARY_DIR}/externals/meshoptimizer") ++ + add_subdirectory(${meshoptimizer_SOURCE_DIR} ${meshoptimizer_BINARY_DIR} EXCLUDE_FROM_ALL) + endif() + diff --git a/games-simulation/EmptyEpsilon/files/SeriousProton-Add-missing-include-memory-to-websocket.h.patch b/games-simulation/EmptyEpsilon/files/SeriousProton-Add-missing-include-memory-to-websocket.h.patch new file mode 100644 index 000000000000..861eaa781e8f --- /dev/null +++ b/games-simulation/EmptyEpsilon/files/SeriousProton-Add-missing-include-memory-to-websocket.h.patch @@ -0,0 +1,23 @@ +From 9fe127233eae44f14e37900c3f54e8a305d2f161 Mon Sep 17 00:00:00 2001 +From: Florian Schmaus <flo@geekplace.eu> +Date: Sun, 22 May 2022 12:36:08 +0200 +Subject: [PATCH] Add missing #include <memory> to websocket.h + +std::unique_ptr, which is used for the 'socket' field, is defined in +<memory> but currently not included. Starting with GCC 12, the missing +include will cause a compilation error. + +The missing include was found by Gentoo's CI and reported as +https://bugs.gentoo.org/846935 +--- a/src/io/http/websocket.h ++++ b/src/io/http/websocket.h +@@ -5,6 +5,9 @@ + #include <io/network/tcpSocket.h> + #include <unordered_map> + ++#ifndef EMSCRIPTEN ++#include <memory> ++#endif + + namespace sp { + namespace io { diff --git a/games-simulation/EmptyEpsilon/files/SeriousProton-cmake.patch b/games-simulation/EmptyEpsilon/files/SeriousProton-cmake.patch new file mode 100644 index 000000000000..3ac8368055f1 --- /dev/null +++ b/games-simulation/EmptyEpsilon/files/SeriousProton-cmake.patch @@ -0,0 +1,15 @@ +--- a/libs/basis_universal/CMakeLists.txt ++++ b/libs/basis_universal/CMakeLists.txt +@@ -29,9 +29,9 @@ else() + endif() + + if(NOT basis_POPULATED) +- if(COMMAND FetchContent_Populate) +- FetchContent_Populate(basis) +- endif() ++ set(basis_SOURCE_DIR "${EXTERNALS_DIR}/basis") ++ set(basis_BINARY_DIR "${PROJECT_BINARY_DIR}/externals/basis") ++ + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(BUILD_X64 FALSE CACHE BOOL "") + endif() |