| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- cmake_minimum_required(VERSION 3.15...4.0)
- project(app)
- 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}")
- # Для старых версий CMake (< 3.4) можно использовать альтернативу:
- # set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
- endif()
- set(OUTPUT_DIR ${CMAKE_BINARY_DIR}/$<CONFIG>)
- 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/app/*/*.cpp"
- "${PROJECT_SOURCE_DIR}/src/saura/core/*/*.cpp"
- "${PROJECT_SOURCE_DIR}/src/saura/main/main.cpp"
- )
- # Создаем библиотеку
- add_library(${PROJECT_NAME}_lib STATIC ${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(cpr CONFIG REQUIRED)
- find_package(nlohmann_json CONFIG REQUIRED)
- find_package(GTest CONFIG REQUIRED)
- # Добавляем include-пути
- target_include_directories(${PROJECT_NAME}_lib PUBLIC
- ${PROJECT_SOURCE_DIR}
- ${PROJECT_SOURCE_DIR}/src
- )
- target_include_directories(${PROJECT_NAME}_lib PRIVATE
- ${PROJECT_SOURCE_DIR}
- ${PROJECT_SOURCE_DIR}/src
- )
- target_link_libraries(${PROJECT_NAME}_lib PUBLIC
- SDL3::SDL3
- spdlog::spdlog
- imgui::imgui
- glm::glm
- cpr::cpr
- nlohmann_json::nlohmann_json
- GTest::gtest GTest::gtest_main
- )
- add_subdirectory(src/saura/cmd/sandbox)
- add_subdirectory(src/saura/cmd/tests)
|