diff --git a/games/emptyepsilon/Makefile b/games/emptyepsilon/Makefile index ea34d034715a..2a6462418750 100644 --- a/games/emptyepsilon/Makefile +++ b/games/emptyepsilon/Makefile @@ -1,48 +1,54 @@ PORTNAME= emptyepsilon DISTVERSIONPREFIX= EE- DISTVERSION= 2024.12.08 CATEGORIES= games MAINTAINER= yuri@FreeBSD.org COMMENT= Spaceship bridge simulator game WWW= https://daid.github.io/EmptyEpsilon/ \ https://github.com/daid/EmptyEpsilon \ https://github.com/daid/SeriousProton LICENSE= GPLv2 AngryFly-Royalty-Free-License LICENSE_COMB= multi LICENSE_NAME_AngryFly-Royalty-Free-License= AngryFly Royalty-Free-License LICENSE_FILE_GPLv2= ${WRKSRC}/LICENSE LICENSE_FILE_AngryFly-Royalty-Free-License= ${WRKSRC}/packs/License.txt LICENSE_PERMS_AngryFly-Royalty-Free-License= auto-accept dist-mirror pkg-mirror -BUILD_DEPENDS= glm>0:math/glm +# BUILD_DEPENDS for glm is commented out because the system glm (1.0.x) is +# incompatible with EmptyEpsilon's code. The bundled glm 0.9.9.8 is used instead +# via git submodule to avoid API incompatibilities (missing radians, degrees, +# u8vec4, vec3 functions/types in newer glm versions). +#BUILD_DEPENDS= glm>0:math/glm LIB_DEPENDS= libfreetype.so:print/freetype2 \ libsfml-system.so:devel/sfml \ libmeshoptimizer.so:misc/meshoptimizer \ libopus.so:audio/opus RUN_DEPENDS= xclip:x11/xclip USES= cmake:insource compiler:c++11-lib localbase:ldflags pkgconfig python:build sdl USE_SDL= sdl2 USE_GITHUB= yes GH_ACCOUNT= daid GH_PROJECT= EmptyEpsilon GH_TUPLE= daid:SeriousProton:${DISTVERSIONFULL}:sproton/sproton \ - BinomialLLC:basis_universal:v1_15_update2:basis/SeriousProton/externals/basis + BinomialLLC:basis_universal:v1_15_update2:basis/SeriousProton/externals/basis \ + g-truc:glm:0.9.9.8:glm/sproton/libs/glm CMAKE_ARGS= -DSERIOUS_PROTON_DIR="${WRKSRC}/sproton" \ - -DWITH_OPUS=system + -DWITH_OPUS=system \ + -DWITH_GLM=bundled CXXFLAGS+= -DGLM_ENABLE_EXPERIMENTAL post-patch: @${REINPLACE_CMD} -e 's|basepath + |"${DATADIR}/" + basepath + |' \ ${WRKSRC_sproton}/src/resources.cpp @${REINPLACE_CMD} -e 's|uint32_t bswap32(uint32_t value)|uint32_t bswap32_(uint32_t value)|' \ ${WRKSRC_sproton}/src/i18n.cpp post-install: @${MV} ${STAGEDIR}${PREFIX}/bin/EmptyEpsilon ${STAGEDIR}${PREFIX}/bin/emptyepsilon .include diff --git a/games/emptyepsilon/distinfo b/games/emptyepsilon/distinfo index 706e55a5134b..d6c7e2a4f166 100644 --- a/games/emptyepsilon/distinfo +++ b/games/emptyepsilon/distinfo @@ -1,7 +1,9 @@ -TIMESTAMP = 1733775767 +TIMESTAMP = 1764964262 SHA256 (daid-EmptyEpsilon-EE-2024.12.08_GH0.tar.gz) = 8be5360270b9a616a5d749aec9653b3e36beba96b2d6b1651e18594a3314f010 SIZE (daid-EmptyEpsilon-EE-2024.12.08_GH0.tar.gz) = 261708187 SHA256 (daid-SeriousProton-EE-2024.12.08_GH0.tar.gz) = fa4a9873c5f8872f9f2d75d03eec06c8a40ea2e0daeb977f0445f14c1e76a236 SIZE (daid-SeriousProton-EE-2024.12.08_GH0.tar.gz) = 2648907 SHA256 (BinomialLLC-basis_universal-v1_15_update2_GH0.tar.gz) = 3caff917d63ed0255fc56bcdf80d305bb47ac9315a4a45409a1264a0e5e0e572 SIZE (BinomialLLC-basis_universal-v1_15_update2_GH0.tar.gz) = 13283133 +SHA256 (g-truc-glm-0.9.9.8_GH0.tar.gz) = 7d508ab72cb5d43227a3711420f06ff99b0a0cb63ee2f93631b162bfe1fe9592 +SIZE (g-truc-glm-0.9.9.8_GH0.tar.gz) = 4368032 diff --git a/games/emptyepsilon/files/patch-sproton_CMakeLists.txt b/games/emptyepsilon/files/patch-sproton_CMakeLists.txt new file mode 100644 index 000000000000..75f204e5320f --- /dev/null +++ b/games/emptyepsilon/files/patch-sproton_CMakeLists.txt @@ -0,0 +1,18 @@ +- Use bundled glm from libs/glm when WITH_GLM=bundled +- Avoids FetchContent for glm since we provide it via GH_TUPLE for compatibility + +--- sproton/CMakeLists.txt.orig 2024-11-06 08:14:52 UTC ++++ sproton/CMakeLists.txt +@@ -48,6 +48,12 @@ if(NOT WITH_GLM STREQUAL "bundled") + find_package(glm ${glm_find_args}) + endif() + ++# Check if glm is already provided in libs/glm (via ports GH_TUPLE) ++if(NOT glm_FOUND AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/libs/glm/CMakeLists.txt") ++ add_subdirectory(libs/glm EXCLUDE_FROM_ALL) ++ set(glm_FOUND TRUE) ++endif() ++ + if(glm_FOUND) + message(STATUS "GLM version used: SYSTEM") + if(NOT TARGET glm::glm) diff --git a/games/emptyepsilon/files/patch-sproton_libs_basis__universal_CMakeLists.txt b/games/emptyepsilon/files/patch-sproton_libs_basis__universal_CMakeLists.txt index 29b62170dd16..ff81bf53a1ff 100644 --- a/games/emptyepsilon/files/patch-sproton_libs_basis__universal_CMakeLists.txt +++ b/games/emptyepsilon/files/patch-sproton_libs_basis__universal_CMakeLists.txt @@ -1,13 +1,39 @@ -- avoid fetch, use pre-installed meshoptimizer package, see https://github.com/daid/SeriousProton/issues/253 - ---- sproton/libs/basis_universal/CMakeLists.txt.orig 2024-12-09 20:23:38 UTC -+++ sproton/libs/basis_universal/CMakeLists.txt -@@ -5,7 +5,7 @@ set(BASIS_URL "https://github.com/BinomialLLC/basis_un +--- sproton/libs/basis_universal/CMakeLists.txt.orig 2025-12-05 12:11:01.680012000 -0800 ++++ sproton/libs/basis_universal/CMakeLists.txt 2025-12-05 12:11:01.722728000 -0800 +@@ -5,7 +5,7 @@ set(BASIS_VERSION "v1_15_update2") set(BASIS_URL "https://github.com/BinomialLLC/basis_universal") -if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.11) +if(FALSE AND CMAKE_VERSION VERSION_GREATER_EQUAL 3.11) include(FetchContent) FetchContent_Declare( basis +@@ -14,18 +14,21 @@ + ) + FetchContent_GetProperties(basis) + else() +- set(BASIS_BASE_PATH "${EXTERNALS_DIR}") +- set(basis_POPULATED FALSE) +- if(NOT EXISTS "${BASIS_BASE_PATH}/basis/CMakeLists.txt") ++ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../../SeriousProton/externals/basis/CMakeLists.txt") ++ set(basis_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../SeriousProton/externals/basis") ++ set(basis_BINARY_DIR "${PROJECT_BINARY_DIR}/externals/basis") ++ set(basis_POPULATED TRUE) ++ else() ++ set(BASIS_BASE_PATH "${EXTERNALS_DIR}") ++ set(basis_POPULATED FALSE) + set(BASIS_ZIP "${DOWNLOADS_DIR}/basis.zip") + file(DOWNLOAD "${BASIS_URL}/archive/refs/tags/${BASIS_VERSION}.zip" "${BASIS_ZIP}" TIMEOUT 60 TLS_VERIFY ON) + + file(MAKE_DIRECTORY "${BASIS_BASE_PATH}/basis") + execute_process(COMMAND ${CMAKE_COMMAND} -E tar -xf "${BASIS_ZIP}" WORKING_DIRECTORY "${BASIS_BASE_PATH}") ++ set(basis_SOURCE_DIR "${BASIS_BASE_PATH}/basis") ++ set(basis_BINARY_DIR "${PROJECT_BINARY_DIR}/externals/basis") + endif() +- +- set(basis_SOURCE_DIR "${BASIS_BASE_PATH}/basis") +- set(basis_BINARY_DIR "${PROJECT_BINARY_DIR}/externals/basis") + endif() + + if(NOT basis_POPULATED)