CMake: Update CXX standard handling

* Print summary
This commit is contained in:
Dennis Klein 2019-06-27 12:13:45 +02:00 committed by Alexey Rybalchenko
parent bee04a260c
commit 128bcceade
2 changed files with 8 additions and 6 deletions

View File

@ -109,6 +109,8 @@ endif()
# Summary ###################################################################### # Summary ######################################################################
message(STATUS " ") 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 " ${Cyan}COMPONENT BUILT? INFO${CR}")
message(STATUS " ${BWhite}library${CR} ${BGreen}YES${CR} (default, always built)") message(STATUS " ${BWhite}library${CR} ${BGreen}YES${CR} (default, always built)")
if(BUILD_TESTING) if(BUILD_TESTING)

View File

@ -86,6 +86,7 @@ endfunction()
# Set defaults # Set defaults
macro(set_fairlogger_defaults) macro(set_fairlogger_defaults)
string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER) string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER)
string(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UPPER)
# Set a default build type # Set a default build type
if(NOT CMAKE_BUILD_TYPE) if(NOT CMAKE_BUILD_TYPE)
@ -93,15 +94,14 @@ macro(set_fairlogger_defaults)
endif() endif()
# Handle C++ standard level # Handle C++ standard level
set(PROJECT_MIN_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(NOT CMAKE_CXX_STANDARD) if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD ${PROJECT_MIN_CXX_STANDARD})
elseif(${CMAKE_CXX_STANDARD} LESS 11) elseif(${CMAKE_CXX_STANDARD} LESS ${PROJECT_MIN_CXX_STANDARD})
message(FATAL_ERROR "A minimum CMAKE_CXX_STANDARD of 11 is required.") message(FATAL_ERROR "A minimum CMAKE_CXX_STANDARD of ${PROJECT_MIN_CXX_STANDARD} is required.")
endif()
if(NOT CMAKE_CXX_EXTENSIONS)
set(CMAKE_CXX_EXTENSIONS OFF)
endif() endif()
set(CMAKE_CXX_EXTENSIONS OFF)
# Generate compile_commands.json file (https://clang.llvm.org/docs/JSONCompilationDatabase.html) # Generate compile_commands.json file (https://clang.llvm.org/docs/JSONCompilationDatabase.html)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON)