From e9c9dc51244f05b900fbbd83923cfcc7687616fa Mon Sep 17 00:00:00 2001 From: Dennis Klein Date: Thu, 27 Jun 2019 12:13:45 +0200 Subject: [PATCH] CMake: Update CXX standard handling * Print summary --- CMakeLists.txt | 2 ++ cmake/FairLoggerLib.cmake | 12 ++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 401baa1..9fb5db6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -109,6 +109,8 @@ endif() # Summary ###################################################################### message(STATUS " ") +message(STATUS " ${Cyan}CXX STANDARD${CR} ${BGreen}C++${CMAKE_CXX_STANDARD}${CR} (>= C++${PROJECT_MIN_CXX_STANDARD}, change with ${BMagenta}-DCMAKE_CXX_STANDARD=17${CR})") +message(STATUS " ") message(STATUS " ${Cyan}COMPONENT BUILT? INFO${CR}") message(STATUS " ${BWhite}library${CR} ${BGreen}YES${CR} (default, always built)") if(BUILD_TESTING) diff --git a/cmake/FairLoggerLib.cmake b/cmake/FairLoggerLib.cmake index 0d8a4d2..e1f51c7 100644 --- a/cmake/FairLoggerLib.cmake +++ b/cmake/FairLoggerLib.cmake @@ -86,6 +86,7 @@ endfunction() # Set defaults macro(set_fairlogger_defaults) string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER) + string(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UPPER) # Set a default build type if(NOT CMAKE_BUILD_TYPE) @@ -93,15 +94,14 @@ macro(set_fairlogger_defaults) endif() # Handle C++ standard level + set(PROJECT_MIN_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) if(NOT CMAKE_CXX_STANDARD) - set(CMAKE_CXX_STANDARD 11) - elseif(${CMAKE_CXX_STANDARD} LESS 11) - message(FATAL_ERROR "A minimum CMAKE_CXX_STANDARD of 11 is required.") - endif() - if(NOT CMAKE_CXX_EXTENSIONS) - set(CMAKE_CXX_EXTENSIONS OFF) + set(CMAKE_CXX_STANDARD ${PROJECT_MIN_CXX_STANDARD}) + elseif(${CMAKE_CXX_STANDARD} 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) # Generate compile_commands.json file (https://clang.llvm.org/docs/JSONCompilationDatabase.html) set(CMAKE_EXPORT_COMPILE_COMMANDS ON)