Skip to content

Commit

Permalink
#1602: CMake: handle warning related options in one place
Browse files Browse the repository at this point in the history
  • Loading branch information
cz4rs committed Nov 23, 2021
1 parent 419599e commit e851266
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 11 deletions.
13 changes: 3 additions & 10 deletions cmake-modules/SetCXXCompilerFlags.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -3,29 +3,22 @@
macro(set_darma_compiler_flags vt_target)

set(CMAKE_CXX_EXTENSIONS OFF)

if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
if (${CMAKE_CXX_COMPILER_ID} MATCHES "GNU")
# 4.9.3 complains about std::min not being constexpr
if (NOT (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 5))
message("${PROJECT_NAME} currently requires g++ 5 or greater. If you need it to work with 4.9, please complain.")
endif ()
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6)
list(APPEND TARGET_PRIVATE_CXX_FLAGS -Wno-unused-variable)
endif()
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
elseif (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
list(APPEND TARGET_PUBLIC_CXX_FLAGS -ftemplate-depth=900)
if (APPLE)
list(APPEND TARGET_PUBLIC_CXX_FLAGS -stdlib=libc++ -DCLI11_EXPERIMENTAL_OPTIONAL=0)
endif ()
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 7)
list(APPEND TARGET_PUBLIC_CXX_FLAGS -DCLI11_EXPERIMENTAL_OPTIONAL=0)
endif()
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6)
list(APPEND TARGET_PRIVATE_CXX_FLAGS -Wno-missing-braces)
endif()
elseif (CMAKE_CXX_COMPILER_ID STREQUAL IntelLLVM AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 2021.3.0)
list(APPEND TARGET_PRIVATE_CXX_FLAGS -fhonor-infinites -fhonor-nans)
elseif (NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "Intel")
elseif (NOT ${CMAKE_CXX_COMPILER_ID} MATCHES "Intel")
message(FATAL_ERROR "Your C++ compiler may not support C++14.")
endif ()

Expand Down
12 changes: 11 additions & 1 deletion cmake/turn_on_warnings.cmake
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
include(CheckCXXCompilerFlag)

macro(add_cxx_compiler_flag_if_supported flag)
check_cxx_compiler_flag("${flag}" flag_supported)
check_cxx_compiler_flag(${flag} flag_supported)
if(flag_supported)
list(APPEND VT_WARNING_FLAGS "${flag}")
endif()
Expand All @@ -20,6 +20,16 @@ if(NOT DEFINED VT_WARNING_FLAGS)
if (vt_werror_enabled) # Treat warning as errors
add_cxx_compiler_flag_if_supported("-Werror")
endif()

# Silence some spurious warnings on older compilers
if (${CMAKE_CXX_COMPILER_ID} MATCHES "GNU" AND
CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6)
list(APPEND VT_WARNING_FLAGS -Wno-unused-variable)
endif()
if (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang" AND
CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6)
list(APPEND VT_WARNING_FLAGS -Wno-missing-braces)
endif()
endif()

set(
Expand Down

0 comments on commit e851266

Please sign in to comment.