build: all the targets now set C++20 as the minimum required version

This commit is contained in:
Mateusz Pusz
2024-01-08 13:02:02 +01:00
parent 01dbd02519
commit 5293589900
4 changed files with 6 additions and 2 deletions

View File

@@ -29,6 +29,7 @@ endif()
if(${projectPrefix}BUILD_CXX_MODULES) if(${projectPrefix}BUILD_CXX_MODULES)
add_library(example_utils INTERFACE) add_library(example_utils INTERFACE)
target_compile_features(example_utils INTERFACE cxx_std_20)
target_compile_definitions(example_utils INTERFACE ${projectPrefix}MODULES) target_compile_definitions(example_utils INTERFACE ${projectPrefix}MODULES)
target_include_directories(example_utils INTERFACE include) target_include_directories(example_utils INTERFACE include)
target_link_libraries(example_utils INTERFACE gsl::gsl-lite) 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) function(add_example target)
if(${projectPrefix}BUILD_CXX_MODULES) if(${projectPrefix}BUILD_CXX_MODULES)
add_executable(${target} ${target}.cpp) 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}) target_link_libraries(${target} PRIVATE mp-units::mp-units ${ARGN})
endif() endif()

View File

@@ -23,11 +23,13 @@
cmake_minimum_required(VERSION 3.5) cmake_minimum_required(VERSION 3.5)
add_library(glide_computer_lib-headers STATIC glide_computer_lib.cpp include/glide_computer_lib.h) 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_link_libraries(glide_computer_lib-headers PUBLIC mp-units::mp-units example_utils-headers)
target_include_directories(glide_computer_lib-headers PUBLIC include) target_include_directories(glide_computer_lib-headers PUBLIC include)
if(${projectPrefix}BUILD_CXX_MODULES) if(${projectPrefix}BUILD_CXX_MODULES)
add_library(glide_computer_lib STATIC glide_computer_lib.cpp include/glide_computer_lib.h) 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_compile_definitions(glide_computer_lib PUBLIC ${projectPrefix}MODULES)
target_link_libraries(glide_computer_lib PUBLIC mp-units::mp-units example_utils) target_link_libraries(glide_computer_lib PUBLIC mp-units::mp-units example_utils)
target_include_directories(glide_computer_lib PUBLIC include) target_include_directories(glide_computer_lib PUBLIC include)

View File

@@ -62,6 +62,7 @@ function(add_mp_units_module name target_name)
# define the target for a module # define the target for a module
add_library(${target_name} ${SCOPE}) add_library(${target_name} ${SCOPE})
target_compile_features(${target_name} INTERFACE cxx_std_20)
target_link_libraries(${target_name} ${${projectPrefix}TARGET_SCOPE} ${ARG_DEPENDENCIES}) target_link_libraries(${target_name} ${${projectPrefix}TARGET_SCOPE} ${ARG_DEPENDENCIES})
set_target_properties(${target_name} PROPERTIES EXPORT_NAME ${name}) set_target_properties(${target_name} PROPERTIES EXPORT_NAME ${name})
add_library(mp-units::${name} ALIAS ${target_name}) add_library(mp-units::${name} ALIAS ${target_name})

View File

@@ -77,7 +77,6 @@ add_mp_units_module(
MODULE_INTERFACE_UNIT mp-units-core.cpp MODULE_INTERFACE_UNIT mp-units-core.cpp
) )
target_compile_features(mp-units-core INTERFACE cxx_std_20)
target_compile_definitions( target_compile_definitions(
mp-units-core ${${projectPrefix}TARGET_SCOPE} ${projectPrefix}USE_LIBFMT=$<BOOL:${${projectPrefix}USE_LIBFMT}> mp-units-core ${${projectPrefix}TARGET_SCOPE} ${projectPrefix}USE_LIBFMT=$<BOOL:${${projectPrefix}USE_LIBFMT}>
) )