summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorJeod <47716344+JeodC@users.noreply.github.com>2026-04-22 19:38:48 -0400
committerGitHub <noreply@github.com>2026-04-22 17:38:48 -0600
commit10f10f17e609d4ee218744029effcfb47b97a481 (patch)
treebb9b40b4d45f945ead4f6161c4c2685d271c2ce3 /CMakeLists.txt
parent3a5af8ff76efad60cb193670ff1ad8fd22ac47f0 (diff)
Fix compiling for linux arm64 (#650)
* Enable MK64 build option for torch * Fix HMAS type error (present on arm64) * Align memory pool and fix empty macro * Experimental: Add 4096 memory alignment * Add alignment for ALIGNED8 macro * Use memset over deprecated bzero * Ensure OPENGLES flag can be used in CMakeLists.txt * Diagnostic: align ship2_window_i8 to rule out odd-alignment crash --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt27
1 files changed, 22 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4ba126c6a..bb8806422 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -178,6 +178,9 @@ else()
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG ${COMMON_CXX_FLAGS}")
endif()
+# Toggle for GLES (Required for many ARM/Mobile platforms)
+option(USE_OPENGLES "Use OpenGLES instead of Desktop OpenGL" OFF)
+
# Set game compilation version
set(VERSION us)
set(USE_NETWORKING OFF)
@@ -204,6 +207,7 @@ endif()
# Add compile definitions for the target
add_compile_definitions(
VERSION_US=1
+ $<$<BOOL:${USE_OPENGLES}>:USE_OPENGLES>
ENABLE_RUMBLE=1
F3DEX_GBI=1
_LANGUAGE_C
@@ -215,10 +219,6 @@ add_compile_definitions(
SPAGHETTI_VERSION="${PROJECT_VERSION}"
)
-# Find necessary libraries
-if (UNIX AND NOT APPLE)
- find_package(OpenGL REQUIRED)
-endif()
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/properties.h.in ${CMAKE_CURRENT_SOURCE_DIR}/properties.h @ONLY)
@@ -334,6 +334,18 @@ else()
add_executable(${PROJECT_NAME} ${ALL_FILES})
endif()
+################################################################################
+# OpenGL / OpenGLES library
+################################################################################
+if (UNIX AND NOT APPLE)
+ if (USE_OPENGLES)
+ find_library(GLESv2_LIBRARY GLESv2 REQUIRED)
+ target_link_libraries(${PROJECT_NAME} PRIVATE ${GLESv2_LIBRARY})
+ else()
+ find_package(OpenGL REQUIRED)
+ target_link_libraries(${PROJECT_NAME} PRIVATE OpenGL::GL)
+ endif()
+endif()
################################################################################
# MSVC runtime library
@@ -417,10 +429,13 @@ include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/include
${CMAKE_CURRENT_SOURCE_DIR}/libultraship/include/libultraship
${SDL2_INCLUDE_DIRS}
- ${GLEW_INCLUDE_DIRS}
${dr_libs_SOURCE_DIR}
)
+if (NOT USE_OPENGLES)
+ include_directories(${GLEW_INCLUDE_DIRS})
+endif()
+
add_subdirectory(libultraship ${CMAKE_CURRENT_SOURCE_DIR}/libultraship)
add_dependencies(${PROJECT_NAME} libultraship)
target_link_libraries(${PROJECT_NAME} PRIVATE libultraship)
@@ -531,8 +546,10 @@ option(USE_STANDALONE "Build as a standalone executable" OFF)
option(BUILD_STORMLIB "Build with StormLib support" OFF)
option(BUILD_SM64 "Build with Super Mario 64 support" OFF)
+option(BUILD_MK64 "Build with Mario Kart 64 support" ON)
option(BUILD_SF64 "Build with Star Fox 64 support" OFF)
option(BUILD_FZERO "Build with F-Zero X support" OFF)
+option(BUILD_MARIO_ARTIST "Build with Mario Artist support" OFF)
add_subdirectory(torch)
target_link_libraries(${PROJECT_NAME} PRIVATE torch "${ADDITIONAL_LIBRARY_DEPENDENCIES}")