cmake_minimum_required(VERSION 3.6) project(GAME) if(POLICY CMP0079) cmake_policy(SET CMP0079 NEW) endif() # ============================================================================== # 1. АВТО-ЗАГРУЗКА ИСХОДНИКОВ # ============================================================================== # Путь относительно текущего файла к папке с общими скриптами include("${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake/FetchDependencies.cmake") # Теперь мы уверены, что папка thirdparty заполнена исходниками. # Определяем базовый путь для удобства: set(TP_ROOT "${THIRDPARTY_DIR}") # ============================================================================== # 2. НАСТРОЙКА ЗАВИСИМОСТЕЙ (СОБИРАЕМ ИЗ ИСХОДНИКОВ) # ============================================================================== # --- ZLIB --- add_subdirectory("${TP_ROOT}/zlib-1.3.1" zlib-build) # --- LIBPNG --- set(PNG_STATIC ON CACHE BOOL "Build static library" FORCE) set(PNG_SHARED OFF CACHE BOOL "Don't build shared library" FORCE) set(PNG_TESTS OFF CACHE BOOL "Disable tests" FORCE) set(PNG_TOOLS OFF CACHE BOOL "Disable tools" FORCE) set(PNG_EXECUTABLES OFF CACHE BOOL "Disable executables" FORCE) set(PNG_DEBUG OFF CACHE BOOL "Disable debug" FORCE) set(SKIP_INSTALL_ALL ON CACHE BOOL "Skip installation" FORCE) set(PNG_HARDWARE_OPTIMIZATIONS OFF CACHE BOOL "Disable hardware optimizations" FORCE) set(PNG_ARM_NEON "off" CACHE STRING "Disable ARM NEON" FORCE) add_subdirectory("${TP_ROOT}/libpng-1.6.51" libpng-build) # --- SDL2 --- # Android-версия SDL требует специфичных настроек, но add_subdirectory обычно подхватывает их сама add_subdirectory("${TP_ROOT}/SDL-release-2.32.10" sdl-build) # --- LIBZIP --- # Отключаем поиск системных крипто-библиотек, так как в NDK их может не быть в стандартных путях set(ENABLE_GNUTLS OFF CACHE BOOL "" FORCE) set(ENABLE_OPENSSL OFF CACHE BOOL "" FORCE) set(ENABLE_WINDOWS_CRYPTO OFF CACHE BOOL "" FORCE) set(ENABLE_COMMONCRYPTO OFF CACHE BOOL "" FORCE) set(ENABLE_MBEDTLS OFF CACHE BOOL "" FORCE) add_subdirectory("${TP_ROOT}/libzip-1.11.4" libzip-build) # --- EIGEN & BOOST (Header-only) --- # Мы создаем интерфейсные таргеты здесь, чтобы они были доступны в подпапке src if(NOT TARGET eigen_external_lib) add_library(eigen_external_lib INTERFACE) target_include_directories(eigen_external_lib INTERFACE "${TP_ROOT}/eigen-5.0.0") endif() if(NOT TARGET boost_external_lib) add_library(boost_external_lib INTERFACE) target_include_directories(boost_external_lib INTERFACE "${TP_ROOT}/boost_1_90_0") endif() # ============================================================================== # 3. ОСНОВНОЙ КОД # ============================================================================== add_subdirectory(src)