Files
questshock/android/engine-patches/01-android-shared-lib.patch
T
2026-07-20 09:45:08 +02:00

56 lines
1.7 KiB
Diff

--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -380,9 +380,25 @@
-include precompiled.h
)
-add_executable(systemshock
- ${MAC_SRC}
-)
+# Android has no standalone executables (Java loads a shared library via
+# JNI instead), so this is the one part of this file Android needs to
+# override - see android/engine-patches/. Everything else here (sources,
+# dependency discovery, link libraries) is untouched and applies the same
+# way on both platforms. ANDROID_EXTRA_SOURCES (passed in by
+# android/app/build.gradle) is QuestShockActivity's own small native
+# helper (android/app/src/main/cpp/) - not part of engine/ itself.
+if(ANDROID)
+ set(SHOCKOLATE_TARGET main)
+ add_library(${SHOCKOLATE_TARGET} SHARED
+ ${MAC_SRC}
+ ${ANDROID_EXTRA_SOURCES}
+ )
+else()
+ set(SHOCKOLATE_TARGET systemshock)
+ add_executable(${SHOCKOLATE_TARGET}
+ ${MAC_SRC}
+ )
+endif()
add_library(GAME_LIB ${GAME_SRC})
@@ -391,7 +407,7 @@
set(WINDOWS_LIBRARIES "mingw32 -mwindows")
endif(MINGW)
-target_link_libraries(systemshock
+target_link_libraries(${SHOCKOLATE_TARGET}
${WINDOWS_LIBRARIES} # Set it before any linker options! Beware WinMain@16 error!!
GAME_LIB
UI_LIB
@@ -418,7 +434,10 @@
${ALSA_LIBRARIES}
)
-# Turn on address sanitizing if wanted
-set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/externals/sanitizers/cmake" ${CMAKE_MODULE_PATH})
-find_package(Sanitizers)
-add_sanitizers(systemshock)
+# Turn on address sanitizing if wanted (desktop only - not meaningful for
+# an Android release build)
+if(NOT ANDROID)
+ set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/externals/sanitizers/cmake" ${CMAKE_MODULE_PATH})
+ find_package(Sanitizers)
+ add_sanitizers(${SHOCKOLATE_TARGET})
+endif()