cmake_minimum_required(VERSION 3.16)
project(SupaplexOffline C)
if(ANDROID)
 add_link_options("-Wl,-z,max-page-size=16384")
endif()
set(SDL_SHARED ON CACHE BOOL "" FORCE)
set(SDL_STATIC OFF CACHE BOOL "" FORCE)
set(SDL_TEST OFF CACHE BOOL "" FORCE)
add_subdirectory(vendor/SDL)
set(SDL2MIXER_SAMPLES OFF CACHE BOOL "" FORCE)
set(SDL2MIXER_DEPS_SHARED OFF CACHE BOOL "" FORCE)
set(SDL2MIXER_VENDORED ON CACHE BOOL "" FORCE)
foreach(codec FLAC MP3 MIDI OPUS OGG WAVPACK GME)
 set(SDL2MIXER_${codec} OFF CACHE BOOL "" FORCE)
endforeach()
set(SDL2MIXER_MOD ON CACHE BOOL "" FORCE)
add_subdirectory(vendor/SDL_mixer)
file(GLOB GAME_SOURCES src/*.c src/sdl2/*.c src/sdl_common/*.c)
add_library(main SHARED ${GAME_SOURCES} src/lib/ini/ini.c src/android/virtualKeyboard.c src/android/display.c src/android/progress.c)
target_compile_definitions(main PRIVATE HAVE_SDL2=1)
target_include_directories(main PRIVATE vendor/SDL/include vendor/SDL_mixer/include)
target_link_libraries(main PRIVATE SDL2 SDL2_mixer m)
target_link_options(main PRIVATE "-Wl,-z,max-page-size=16384")
target_link_libraries(SDL2_mixer PRIVATE log)
# On-device replay verifier, sharing the exact game logic with the APK.
set(REPLAY_SOURCES ${GAME_SOURCES})
list(REMOVE_ITEM REPLAY_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/sdl_common/audio.c" "${CMAKE_CURRENT_SOURCE_DIR}/src/sdl2/video.c")
add_executable(replay-verifier EXCLUDE_FROM_ALL ${REPLAY_SOURCES} src/null/audio.c src/null/video.c src/null/virtualKeyboard.c src/lib/ini/ini.c)
target_compile_definitions(replay-verifier PRIVATE HAVE_SDL2=1 SDL_MAIN_HANDLED=1 HEADLESS_TEST=1)
target_include_directories(replay-verifier PRIVATE vendor/SDL/include)
target_link_libraries(replay-verifier PRIVATE SDL2 m)
