diff --git a/README.md b/README.md index 192680c4..206687f1 100644 --- a/README.md +++ b/README.md @@ -124,9 +124,6 @@ After the `find_package(FairMQ)` call the following CMake variables are defined: | `${FairMQ_LIBDIR}` | the installation lib directory | | `${FairMQ_DATADIR}` | the installation data directory (`../share/fairmq`) | | `${FairMQ_CMAKEMODDIR}` | the installation directory of shipped CMake find modules | -| `${FairMQ_CXX_STANDARD_REQUIRED}` | the value of `CMAKE_CXX_STANDARD_REQUIRED` at build-time | -| `${FairMQ_CXX_STANDARD}` | the value of `CMAKE_CXX_STANDARD` at build-time | -| `${FairMQ_CXX_EXTENSIONS}` | the values of `CMAKE_CXX_EXTENSIONS` at build-time | | `${FairMQ_BUILD_TYPE}` | the value of `CMAKE_BUILD_TYPE` at build-time | | `${FairMQ_CXX_FLAGS}` | the values of `CMAKE_CXX_FLAGS` and `CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}` at build-time | diff --git a/cmake/FairMQConfig.cmake.in b/cmake/FairMQConfig.cmake.in index 474f4661..ae25d8c3 100644 --- a/cmake/FairMQConfig.cmake.in +++ b/cmake/FairMQConfig.cmake.in @@ -1,5 +1,5 @@ ################################################################################ -# Copyright (C) 2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH # +# Copyright (C) 2018-2021 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH # # # # This software is distributed under the terms of the # # GNU Lesser General Public Licence (LGPL) version 3, # @@ -20,9 +20,6 @@ set(@PROJECT_NAME@_LIBDIR @PACKAGE_CMAKE_INSTALL_PREFIX@/@PROJECT_INSTALL_LIBDIR set(@PROJECT_NAME@_DATADIR @PACKAGE_CMAKE_INSTALL_PREFIX@/@PROJECT_INSTALL_DATADIR@) set(@PROJECT_NAME@_CMAKEMODDIR @PACKAGE_CMAKE_INSTALL_PREFIX@/@PROJECT_INSTALL_CMAKEMODDIR@) -set(@PROJECT_NAME@_CXX_STANDARD_REQUIRED @CMAKE_CXX_STANDARD_REQUIRED@) -set(@PROJECT_NAME@_CXX_STANDARD @CMAKE_CXX_STANDARD@) -set(@PROJECT_NAME@_CXX_EXTENSIONS @CMAKE_CXX_EXTENSIONS@) set(@PROJECT_NAME@_VERSION_HOTFIX @PROJECT_VERSION_HOTFIX@) set(@PROJECT_NAME@_BUILD_TYPE @CMAKE_BUILD_TYPE@) set(@PROJECT_NAME@_BUILD_TYPE_UPPER @PROJECT_BUILD_TYPE_UPPER@) diff --git a/cmake/FairMQLib.cmake b/cmake/FairMQLib.cmake index 171e4840..2d418b56 100644 --- a/cmake/FairMQLib.cmake +++ b/cmake/FairMQLib.cmake @@ -75,10 +75,7 @@ macro(set_fairmq_defaults) set(PROJECT_MIN_CXX_STANDARD 17) # 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) diff --git a/fairmq/CMakeLists.txt b/fairmq/CMakeLists.txt index 79a67805..5a17e6de 100644 --- a/fairmq/CMakeLists.txt +++ b/fairmq/CMakeLists.txt @@ -47,6 +47,7 @@ if(BUILD_FAIRMQ OR BUILD_SDK) ${TOOLS_SOURCE_FILES} ${TOOLS_PUBLIC_HEADER_FILES} ) + target_compile_features(${target} PUBLIC cxx_std_17) target_compile_definitions(${target} PUBLIC BOOST_ERROR_CODE_HEADER_ONLY) # workaround https://github.com/boostorg/asio/commit/43874d5497414c67655d901e48c939ef01337edb if( Boost_VERSION VERSION_LESS 1.69 @@ -106,6 +107,7 @@ if(BUILD_FAIRMQ OR BUILD_SDK) ${FSM_SOURCE_FILES} ${FSM_PUBLIC_HEADER_FILES} ) + target_compile_features(${target} PUBLIC cxx_std_17) target_compile_definitions(${target} PUBLIC BOOST_ERROR_CODE_HEADER_ONLY) target_include_directories(${target} PUBLIC @@ -263,6 +265,7 @@ if(BUILD_FAIRMQ) ${FAIRMQ_PUBLIC_HEADER_FILES} # for IDE integration ${FAIRMQ_PRIVATE_HEADER_FILES} # for IDE integration ) + target_compile_features(${target} PUBLIC cxx_std_17) set_target_properties(${target} PROPERTIES LABELS coverage) @@ -350,6 +353,7 @@ if(BUILD_FAIRMQ) target_link_libraries(fairmq-splitter FairMQ) add_executable(fairmq-shmmonitor shmem/Monitor.cxx shmem/Monitor.h shmem/runMonitor.cxx) + target_compile_features(fairmq-shmmonitor PUBLIC cxx_std_17) target_compile_definitions(fairmq-shmmonitor PUBLIC BOOST_ERROR_CODE_HEADER_ONLY) if(FAIRMQ_DEBUG_MODE) target_compile_definitions(fairmq-shmmonitor PUBLIC FAIRMQ_DEBUG_MODE) diff --git a/fairmq/plugins/DDS/CMakeLists.txt b/fairmq/plugins/DDS/CMakeLists.txt index 6475e7b1..04e8689b 100644 --- a/fairmq/plugins/DDS/CMakeLists.txt +++ b/fairmq/plugins/DDS/CMakeLists.txt @@ -8,6 +8,7 @@ set(plugin FairMQPlugin_dds) add_library(${plugin} SHARED ${CMAKE_CURRENT_SOURCE_DIR}/DDS.cxx ${CMAKE_CURRENT_SOURCE_DIR}/DDS.h) +target_compile_features(${plugin} PUBLIC cxx_std_17) target_link_libraries(${plugin} PUBLIC FairMQ StateMachine DDS::dds_intercom_lib DDS::dds_protocol_lib Boost::boost PRIVATE Commands) target_include_directories(${plugin} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) set_target_properties(${plugin} PROPERTIES CXX_VISIBILITY_PRESET hidden) diff --git a/fairmq/plugins/PMIx/CMakeLists.txt b/fairmq/plugins/PMIx/CMakeLists.txt index efd43e51..9a4682f6 100644 --- a/fairmq/plugins/PMIx/CMakeLists.txt +++ b/fairmq/plugins/PMIx/CMakeLists.txt @@ -13,6 +13,7 @@ add_library(${plugin} SHARED ${CMAKE_CURRENT_SOURCE_DIR}/PMIxCommands.h ${CMAKE_CURRENT_SOURCE_DIR}/PMIx.hpp ) +target_compile_features(${plugin} PUBLIC cxx_std_17) target_link_libraries(${plugin} PUBLIC FairMQ PMIx::libpmix PRIVATE Commands) target_include_directories(${plugin} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) set_target_properties(${plugin} PROPERTIES diff --git a/fairmq/sdk/CMakeLists.txt b/fairmq/sdk/CMakeLists.txt index 5e6b6315..69d9a568 100644 --- a/fairmq/sdk/CMakeLists.txt +++ b/fairmq/sdk/CMakeLists.txt @@ -45,6 +45,7 @@ add_library(${target} ${SDK_PUBLIC_HEADER_FILES} # for IDE integration ${SDK_PRIVATE_HEADER_FILES} # for IDE integration ) +target_compile_features(${target} PUBLIC cxx_std_17) set_target_properties(${target} PROPERTIES LABELS coverage) target_include_directories(${target} PUBLIC