cmake_minimum_required(VERSION 3.22) project(cr_native LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_POSITION_INDEPENDENT_CODE ON) file(GLOB_RECURSE LIBG_SRC CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/libg/*.c" "${CMAKE_CURRENT_SOURCE_DIR}/src/libg/*.cpp") if(LIBG_SRC) add_library(g SHARED ${LIBG_SRC}) target_include_directories(g PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include" "${CMAKE_CURRENT_SOURCE_DIR}/third_party/fmod/include") if(ANDROID) target_link_libraries(g PRIVATE log android GLESv2 EGL m dl) # FMOD linked as prebuilt import when present: set(FMOD_SO "${CMAKE_CURRENT_SOURCE_DIR}/third_party/fmod/${ANDROID_ABI}/libfmod.so") if(EXISTS "${FMOD_SO}") add_library(fmod SHARED IMPORTED) set_target_properties(fmod PROPERTIES IMPORTED_LOCATION "${FMOD_SO}") target_link_libraries(g PRIVATE fmod) endif() endif() else() message(STATUS "native: src/libg not populated yet (Phase 7/8). Skipping target 'g'.") endif() # libcr is part of a custom shared library from classic royale file(GLOB_RECURSE LIBCR_SRC CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/third_party/libcr/*.c" "${CMAKE_CURRENT_SOURCE_DIR}/third_party/libcr/*.cpp") if(LIBCR_SRC) add_library(cr SHARED ${LIBCR_SRC}) target_include_directories(cr PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/third_party/libcr/include") if(ANDROID) target_link_libraries(cr PRIVATE log z android m dl) endif() else() message(STATUS "native: third_party/libcr not present yet. Drop the OWNED libcr source here (Phase 12).") endif() file(GLOB_RECURSE FMOD_SHIM_SRC CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/compatibility/fmod_shim/*.cpp") if(FMOD_SHIM_SRC AND NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/third_party/fmod/${ANDROID_ABI}/libfmod.so") add_library(fmod SHARED ${FMOD_SHIM_SRC}) target_include_directories(fmod PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/third_party/fmod/include") if(ANDROID) target_link_libraries(fmod PRIVATE log OpenSLES m dl) endif() endif()