61 lines
1.6 KiB
CMake
61 lines
1.6 KiB
CMake
cmake_minimum_required(VERSION 3.14)
|
|
|
|
project(ADC LANGUAGES CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
# set(CMAKE_BUILD_TYPE Release)
|
|
|
|
|
|
set(ADC_COMMON_HEADERS
|
|
common/adc_traits.h
|
|
common/adc_value_holder.h
|
|
common/adc_value.h
|
|
common/adc_valholder.h)
|
|
|
|
set(ADC_DEVICE_HEADERS
|
|
device/adc_device_attribute.h
|
|
device/adc_device_command.h
|
|
)
|
|
|
|
option(BUILD_TESTS "Build tests" ON)
|
|
|
|
if (BUILD_TESTS)
|
|
find_package(doctest)
|
|
|
|
set(VALUEHOLDER_TEST_APP adc_valueholder_test)
|
|
add_executable(${VALUEHOLDER_TEST_APP} tests/adc_valueholder_test.cpp)
|
|
|
|
set(DEVATTR_TEST_APP adc_devattr_test)
|
|
add_executable(${DEVATTR_TEST_APP} tests/adc_devattr_test.cpp)
|
|
|
|
if (NOT doctest_FOUND)
|
|
include(FetchContent)
|
|
FetchContent_Declare(
|
|
doctest
|
|
GIT_REPOSITORY https://github.com/doctest/doctest.git
|
|
GIT_TAG 2.4.11
|
|
)
|
|
FetchContent_MakeAvailable(doctest)
|
|
endif()
|
|
|
|
target_link_libraries(${VALUEHOLDER_TEST_APP} PRIVATE doctest::doctest)
|
|
include(CTest)
|
|
add_test(VALUE_HOLDER ${VALUEHOLDER_TEST_APP})
|
|
enable_testing()
|
|
endif(BUILD_TESTS)
|
|
|
|
include(GNUInstallDirs)
|
|
|
|
add_library(${PROJECT_NAME} INTERFACE ${ADC_COMMON_HEADERS} ${ADC_DEVICE_HEADERS}
|
|
common/adc_traits.h
|
|
common/adc_utils.h)
|
|
target_compile_features(${PROJECT_NAME} INTERFACE cxx_std_20)
|
|
# target_link_libraries(${PROJECT_NAME} INTERFACE ASIO::ASIO)
|
|
target_include_directories(
|
|
${PROJECT_NAME}
|
|
INTERFACE
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
$<INSTALL_INTERFACE:include>
|
|
)
|