aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2025-12-05 20:46:33 +0000
committerYuri Victorovich <yuri@FreeBSD.org>2025-12-05 20:49:12 +0000
commitc8200812c000e298a635a0b9bc7bc2c419e80559 (patch)
treed20afd674af69a0073450d4529c6db4c00957a9f
parentea64a05667f5a26ae180c840d8bef6081dc2701a (diff)
games/emptyepsilon: Fix build
... by using glm submodule. Reported by: fallout
-rw-r--r--games/emptyepsilon/Makefile12
-rw-r--r--games/emptyepsilon/distinfo4
-rw-r--r--games/emptyepsilon/files/patch-sproton_CMakeLists.txt18
-rw-r--r--games/emptyepsilon/files/patch-sproton_libs_basis__universal_CMakeLists.txt36
4 files changed, 61 insertions, 9 deletions
diff --git a/games/emptyepsilon/Makefile b/games/emptyepsilon/Makefile
index ea34d034715a..2a6462418750 100644
--- a/games/emptyepsilon/Makefile
+++ b/games/emptyepsilon/Makefile
@@ -16,7 +16,11 @@ 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 \
@@ -30,10 +34,12 @@ 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:
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,8 +1,6 @@
-- 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")
@@ -11,3 +9,31 @@
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)