mesytec-mnode/CMakeLists.txt

47 lines
1.4 KiB
Text
Raw Normal View History

cmake_minimum_required(VERSION 3.15)
2024-12-07 16:48:24 +01:00
project(mesytec-mnode LANGUAGES CXX)
2024-12-07 16:48:24 +01:00
set(MESYTEC_MNODE_MAIN_PROJECT OFF)
if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
2024-12-07 16:48:24 +01:00
set(MESYTEC_MNODE_MAIN_PROJECT ON)
endif()
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
## Create binaries in the root of the build directory
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
2024-12-23 12:58:48 +01:00
option(MNODE_BUILD_TESTS "Build mnode test binaries" ${MESYTEC_MNODE_MAIN_PROJECT})
if (MNODE_BUILD_TESTS)
find_package(GTest CONFIG)
if (NOT GTest_FOUND)
include(FetchContent)
FetchContent_Declare(googletest URL https://github.com/google/googletest/archive/refs/tags/v1.15.2.zip)
# For Windows: Prevent overriding the parent project's compiler/linker settings
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(googletest)
endif()
message("-- mnode: Building tests")
include(CTest)
enable_testing()
endif()
include(CMakeRC)
cmrc_add_resource_library(mnode-resources
ALIAS mnode::resources NAMESPACE mnode::resources
data/vme_base_configs.json
data/vme_module_data_sources.json
)
add_subdirectory(external)
add_subdirectory(proto)
add_subdirectory(src)