mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-16 18:11:49 +00:00
cmake: Use target_compile_features()
Problem at hand: dependents (like FairRoot) need to know the minimum C++ standard level that FairMQ (and its headers) requires. The first idea is to let the targets export their CXX_STANDARD value. First, this doesn't seem to work as expected. Second, target_compile_features() seems to be the better way to go. It has a much better granularity, automatically has the export feature, and thus should make dependents behave correctly. Also drop all of this enforeced CMAKE_CXX_STANDARD* setting. If it's given, check it. But that's it. See: https://gitlab.kitware.com/cmake/cmake/-/issues/18446 See: https://cmake.org/cmake/help/latest/manual/cmake-compile-features.7.html#requiring-language-standards
This commit is contained in:
committed by
Dennis Klein
parent
2c7c46f2fd
commit
cf12379afa
@@ -94,10 +94,7 @@ macro(set_fairmq_defaults)
|
||||
endif()
|
||||
|
||||
# Handle C++ standard level
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
if(NOT CMAKE_CXX_STANDARD)
|
||||
set(CMAKE_CXX_STANDARD ${PROJECT_MIN_CXX_STANDARD})
|
||||
elseif(${CMAKE_CXX_STANDARD} LESS ${PROJECT_MIN_CXX_STANDARD})
|
||||
if(CMAKE_CXX_STANDARD AND CMAKE_CXX_STANDARD VERSION_LESS PROJECT_MIN_CXX_STANDARD)
|
||||
message(FATAL_ERROR "A minimum CMAKE_CXX_STANDARD of ${PROJECT_MIN_CXX_STANDARD} is required.")
|
||||
endif()
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
Reference in New Issue
Block a user