diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index 2ccc3b99..2fe3aea3 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -29,6 +29,7 @@ endif() if(${projectPrefix}BUILD_CXX_MODULES) add_library(example_utils INTERFACE) + target_compile_features(example_utils INTERFACE cxx_std_20) target_compile_definitions(example_utils INTERFACE ${projectPrefix}MODULES) target_include_directories(example_utils INTERFACE include) target_link_libraries(example_utils INTERFACE gsl::gsl-lite) @@ -44,7 +45,8 @@ target_link_libraries(example_utils-headers INTERFACE gsl::gsl-lite) function(add_example target) if(${projectPrefix}BUILD_CXX_MODULES) add_executable(${target} ${target}.cpp) - target_compile_definitions(${target} PUBLIC ${projectPrefix}MODULES) + target_compile_features(${target} PRIVATE cxx_std_20) + target_compile_definitions(${target} PRIVATE ${projectPrefix}MODULES) target_link_libraries(${target} PRIVATE mp-units::mp-units ${ARGN}) endif() diff --git a/example/glide_computer_lib/CMakeLists.txt b/example/glide_computer_lib/CMakeLists.txt index 56dce4a2..1ba6febd 100644 --- a/example/glide_computer_lib/CMakeLists.txt +++ b/example/glide_computer_lib/CMakeLists.txt @@ -23,11 +23,13 @@ cmake_minimum_required(VERSION 3.5) add_library(glide_computer_lib-headers STATIC glide_computer_lib.cpp include/glide_computer_lib.h) +target_compile_features(glide_computer_lib-headers PUBLIC cxx_std_20) target_link_libraries(glide_computer_lib-headers PUBLIC mp-units::mp-units example_utils-headers) target_include_directories(glide_computer_lib-headers PUBLIC include) if(${projectPrefix}BUILD_CXX_MODULES) add_library(glide_computer_lib STATIC glide_computer_lib.cpp include/glide_computer_lib.h) + target_compile_features(glide_computer_lib PUBLIC cxx_std_20) target_compile_definitions(glide_computer_lib PUBLIC ${projectPrefix}MODULES) target_link_libraries(glide_computer_lib PUBLIC mp-units::mp-units example_utils) target_include_directories(glide_computer_lib PUBLIC include) diff --git a/src/cmake/AddMPUnitsModule.cmake b/src/cmake/AddMPUnitsModule.cmake index da42cd1b..00a53f91 100644 --- a/src/cmake/AddMPUnitsModule.cmake +++ b/src/cmake/AddMPUnitsModule.cmake @@ -62,6 +62,7 @@ function(add_mp_units_module name target_name) # define the target for a module add_library(${target_name} ${SCOPE}) + target_compile_features(${target_name} INTERFACE cxx_std_20) target_link_libraries(${target_name} ${${projectPrefix}TARGET_SCOPE} ${ARG_DEPENDENCIES}) set_target_properties(${target_name} PROPERTIES EXPORT_NAME ${name}) add_library(mp-units::${name} ALIAS ${target_name}) diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index cec5811b..1ed2cfec 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -77,7 +77,6 @@ add_mp_units_module( MODULE_INTERFACE_UNIT mp-units-core.cpp ) -target_compile_features(mp-units-core INTERFACE cxx_std_20) target_compile_definitions( mp-units-core ${${projectPrefix}TARGET_SCOPE} ${projectPrefix}USE_LIBFMT=$ )