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 $ $ )