From 86ef2cfc850bd532d0ac279e533d8f8632977b32 Mon Sep 17 00:00:00 2001 From: Emily Mabrey Date: Sat, 14 Aug 2021 16:18:06 -0400 Subject: [PATCH] Add compile defintions to silence C++17 warnings Add `CXX_WARNINGS_SILENCE_DEFINES` variable. Signed-off-by: Emily Mabrey Signed-off-by: Be --- CMakeLists.txt | 6 ++++++ src/CMakeLists.txt | 1 + 2 files changed, 7 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 56d77c5d9..4347bfd9b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -97,6 +97,11 @@ if( NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES ) set( CMAKE_BUILD_TYPE "Debug" ) endif() +# List of defines which are intended to silence C++17 warnings +# These will be added to each CMAKE target as PRIVATE compilation definitions +list( APPEND CXX_WARNINGS_SILENCE_DEFINES _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING=1 ) +list( APPEND CXX_WARNINGS_SILENCE_DEFINES _SILENCE_CXX17_NEGATORS_DEPRECATION_WARNING=1 ) + # Ignore COMPILE_DEFINITIONS_ properties cmake_policy( SET CMP0043 NEW ) @@ -699,6 +704,7 @@ if(NOT WIN32) if(NOT TARGET wxWidgets::wxWidgets) add_library(wxWidgets::wxWidgets INTERFACE IMPORTED) target_link_libraries(wxWidgets::wxWidgets INTERFACE ${wxWidgets_LIBRARIES}) + target_compile_definitions(wxWidgets::wxWidgets INTERFACE ${CXX_WARNINGS_SILENCE_DEFINES}) target_compile_definitions(wxWidgets::wxWidgets INTERFACE ${wxWidgets_DEFINITIONS} ${wxWidgets_DEFINITIONS_DEBUG}) endif() else() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b3eac056b..0fed8a726 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1343,6 +1343,7 @@ list( APPEND DEFINES PRIVATE "${export_symbol}" INTERFACE "${import_symbol}" ) target_sources( ${TARGET} PRIVATE ${HEADERS} ${SOURCES} ${RESOURCES} ${MAC_RESOURCES} ${WIN_RESOURCES} ) target_compile_definitions( ${TARGET} PRIVATE ${DEFINES} ) +target_compile_definitions( ${TARGET} PRIVATE ${CXX_WARNINGS_SILENCE_DEFINES}) target_compile_options( ${TARGET} PRIVATE ${OPTIONS} ) target_include_directories( ${TARGET} PRIVATE ${INCLUDES} ) target_link_options( ${TARGET} PRIVATE ${LDFLAGS} )