mirror of
https://github.com/logos-co/logos-module-loader.git
synced 2026-08-27 12:41:14 +00:00
41 lines
1.1 KiB
CMake
41 lines
1.1 KiB
CMake
cmake_minimum_required(VERSION 3.14)
|
|
project(LogosModuleLoader LANGUAGES CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
find_package(nlohmann_json REQUIRED)
|
|
|
|
# Set output directories
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
|
|
|
# Build src first
|
|
add_subdirectory(src)
|
|
|
|
# GoogleTest setup
|
|
find_package(GTest QUIET)
|
|
|
|
if(NOT GTest_FOUND)
|
|
message(STATUS "GoogleTest not found via find_package, using FetchContent")
|
|
include(FetchContent)
|
|
FetchContent_Declare(googletest
|
|
URL https://github.com/google/googletest/archive/refs/tags/v1.14.0.zip
|
|
)
|
|
FetchContent_MakeAvailable(googletest)
|
|
else()
|
|
message(STATUS "Using system GoogleTest")
|
|
endif()
|
|
|
|
enable_testing()
|
|
include(GoogleTest)
|
|
|
|
# Add tests subdirectory
|
|
add_subdirectory(tests)
|
|
|
|
# Header-only contract: nothing to install but the headers.
|
|
install(DIRECTORY src/logos_module_loader/ DESTINATION include/logos_module_loader
|
|
FILES_MATCHING PATTERN "*.h"
|
|
)
|