2024-11-23 03:05:05 +01:00
|
|
|
cmake_minimum_required(VERSION 3.15)
|
2023-06-27 20:19:58 +02:00
|
|
|
|
2024-12-25 23:37:37 +01:00
|
|
|
project(mesytec-mnode LANGUAGES C CXX)
|
2024-11-23 03:05:05 +01:00
|
|
|
|
2024-12-07 16:48:24 +01:00
|
|
|
set(MESYTEC_MNODE_MAIN_PROJECT OFF)
|
2024-11-23 03:05:05 +01:00
|
|
|
if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
|
2024-12-07 16:48:24 +01:00
|
|
|
set(MESYTEC_MNODE_MAIN_PROJECT ON)
|
2024-11-23 03:05:05 +01:00
|
|
|
endif()
|
2023-06-27 20:19:58 +02:00
|
|
|
|
2024-12-21 15:17:26 +01:00
|
|
|
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
|
|
|
|
2023-06-27 20:19:58 +02:00
|
|
|
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")
|
|
|
|
|
2024-11-23 11:00:18 +01:00
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
2024-12-28 07:06:05 +01:00
|
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
2024-12-28 16:27:29 +01:00
|
|
|
cmake_policy(VERSION 3.24)
|
2024-11-23 11:00:18 +01:00
|
|
|
|
2024-12-23 12:58:48 +01:00
|
|
|
option(MNODE_BUILD_TESTS "Build mnode test binaries" ${MESYTEC_MNODE_MAIN_PROJECT})
|
|
|
|
|
|
|
|
if (MNODE_BUILD_TESTS)
|
2024-12-26 03:08:26 +01:00
|
|
|
find_package(GTest CONFIG QUIET)
|
2024-12-23 12:58:48 +01:00
|
|
|
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()
|
|
|
|
|
2024-12-26 03:08:26 +01:00
|
|
|
include(FetchContent)
|
2024-12-27 20:15:23 +01:00
|
|
|
FetchContent_Declare(pybind11 GIT_REPOSITORY https://github.com/pybind/pybind11 GIT_TAG v2.13.6)
|
2024-12-28 16:27:29 +01:00
|
|
|
FetchContent_MakeAvailable(pybind11)
|
2024-12-26 03:08:26 +01:00
|
|
|
|
2024-12-21 15:17:26 +01:00
|
|
|
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
|
|
|
|
)
|
|
|
|
|
2023-06-27 20:19:58 +02:00
|
|
|
add_subdirectory(external)
|
2024-12-21 15:17:26 +01:00
|
|
|
add_subdirectory(proto)
|
2023-06-27 20:19:58 +02:00
|
|
|
add_subdirectory(src)
|