cmake_minimum_required(VERSION 3.15...4.0) project(metacraft) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # === CCACHE АВТОМАТИЧЕСКИЙ ЗАПУСК === find_program(CCACHE_PROGRAM ccache) if(CCACHE_PROGRAM) message(STATUS "ccache найден: ${CCACHE_PROGRAM}") # Это работает и с Ninja, и с Makefiles set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE_PROGRAM}") set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_PROGRAM}") endif() set(OUTPUT_DIR ${CMAKE_BINARY_DIR}/$) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OUTPUT_DIR}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_DIR}) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_DIR}) file(GLOB_RECURSE LIB_SOURCES "${PROJECT_SOURCE_DIR}/src/saura/core/*/*.cpp" ) # Создаем библиотеку add_library(${PROJECT_NAME} SHARED ${LIB_SOURCES}) # Пути set(SRC_RES_DIR "${CMAKE_SOURCE_DIR}/res") set(RES_SYMLINK "${OUTPUT_DIR}/res") find_package(SDL3 CONFIG REQUIRED) find_package(spdlog CONFIG REQUIRED) find_package(imgui CONFIG REQUIRED) find_package(glm CONFIG REQUIRED) find_package(GTest CONFIG REQUIRED) # Добавляем include-пути target_include_directories(${PROJECT_NAME} PRIVATE ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/src ) target_include_directories(${PROJECT_NAME} PRIVATE ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/src ) target_link_libraries(${PROJECT_NAME} PRIVATE SDL3::SDL3 spdlog::spdlog imgui::imgui glm::glm GTest::gtest GTest::gtest_main )