From a4f9633d6c272a9d50baafe0e399650e79151a64 Mon Sep 17 00:00:00 2001 From: Andrei Avram <6795248+andreiavrammsd@users.noreply.github.com> Date: Mon, 19 Oct 2026 15:54:10 +0000 Subject: [PATCH] Use per-target CMake properties --- CMakeLists.txt | 9 +++++---- benchmarks/CMakeLists.txt | 2 ++ examples/CMakeLists.txt | 1 + tests/CMakeLists.txt | 1 + 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4420af8..7d312d8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,15 +1,12 @@ cmake_minimum_required(VERSION 3.15) project(cpp_channel VERSION 1.3.1) -set(CMAKE_CXX_STANDARD 11 CACHE STRING "C++ standard") -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_CXX_EXTENSIONS OFF) - list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") include(warnings) add_library(msd_channel INTERFACE) target_include_directories(msd_channel INTERFACE include) +target_compile_features(msd_channel INTERFACE cxx_std_11) option(CPP_CHANNEL_BUILD_TESTS "Build all of cpp_channel's own tests." OFF) option(CPP_CHANNEL_BUILD_BENCHMARKS "Build all of cpp_channel's own benchmark tests." OFF) @@ -18,6 +15,10 @@ option(CPP_CHANNEL_COVERAGE "Generate test coverage." OFF) option(CPP_CHANNEL_SANITIZERS "Build with sanitizers." OFF) option(CPP_CHANNEL_SANITIZE_THREADS "Build with thread sanitizer." OFF) +function(cpp_channel_configure_target TARGET) + set_target_properties(${TARGET} PROPERTIES CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS OFF) +endfunction() + if(CPP_CHANNEL_BUILD_TESTS) enable_testing() add_subdirectory(tests) diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index d202382..315960a 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -10,6 +10,8 @@ endif() function(package_add_benchmark TESTNAME) add_executable(${TESTNAME} ${ARGN}) + cpp_channel_configure_target(${TESTNAME}) + set_target_warnings(${TESTNAME} PRIVATE) target_link_libraries(${TESTNAME} msd_channel benchmark) endfunction() diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 6ddde1d..a149043 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,5 +1,6 @@ function(add_example NAME) add_executable(${NAME} ${ARGN}) + cpp_channel_configure_target(${NAME}) set_target_warnings(${NAME} PRIVATE) target_link_libraries(${NAME} msd_channel) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 8dce5fa..a51bf34 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -19,6 +19,7 @@ endif() # Test macro function(package_add_test TESTNAME) add_executable(${TESTNAME} ${ARGN}) + cpp_channel_configure_target(${TESTNAME}) set_target_warnings(${TESTNAME} PRIVATE) target_link_libraries(${TESTNAME} msd_channel gtest gtest_main)