diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -119,7 +119,11 @@ set(_varname "HAVE${_varname}") check_cxx_compiler_flag("${_flag}" "${_varname}") if (${${_varname}}) - add_compile_options(${_flag}) + if("${ARGV1}" STREQUAL "CXX_ONLY") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_flag}" PARENT_SCOPE) + else() + add_compile_options(${_flag}) + endif() endif() endfunction() @@ -135,8 +139,12 @@ # This warning is triggered by every call to qCDebug() add_compile_flag_if_supported(-Wno-gnu-zero-variadic-macro-arguments) endif() -if (CMAKE_COMPILER_CXX_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") +if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_compile_flag_if_supported(-pedantic) + add_compile_flag_if_supported(-Wzero-as-null-pointer-constant CXX_ONLY) +endif() +if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + add_compile_flag_if_supported(-Wsuggest-override CXX_ONLY) endif() include_directories(${KDevelop_SOURCE_DIR} ${KDevelop_BINARY_DIR}) diff --git a/plugins/astyle/3rdparty/libastyle/CMakeLists.txt b/plugins/astyle/3rdparty/libastyle/CMakeLists.txt --- a/plugins/astyle/3rdparty/libastyle/CMakeLists.txt +++ b/plugins/astyle/3rdparty/libastyle/CMakeLists.txt @@ -7,7 +7,17 @@ ) add_library(astylelib STATIC ${astylelib_SRCS}) set_property(TARGET astylelib PROPERTY POSITION_INDEPENDENT_CODE ON) +if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.0.0") + target_compile_options(astylelib PRIVATE "-Wno-zero-as-null-pointer-constant" "-Wno-suggest-override") + endif() +endif() if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") # astyle lib throws lots of warnings with -Wdocumentation target_compile_options(astylelib PRIVATE "-Wno-documentation") + if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.0.0") + target_compile_options(astylelib PRIVATE "-Wno-zero-as-null-pointer-constant") + endif() endif() +# add as SYSTEM include dir so compiler does not emit warnings for the lib headers +target_include_directories(astylelib SYSTEM PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/plugins/qmljs/3rdparty/qtcreator-libs/CMakeLists.txt b/plugins/qmljs/3rdparty/qtcreator-libs/CMakeLists.txt --- a/plugins/qmljs/3rdparty/qtcreator-libs/CMakeLists.txt +++ b/plugins/qmljs/3rdparty/qtcreator-libs/CMakeLists.txt @@ -52,15 +52,22 @@ endif() if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.0.0") + target_compile_options(kdevqtc-qmlsupport PRIVATE "-Wno-suggest-override" "-Wno-zero-as-null-pointer-constant") + endif() if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "8.0.0") target_compile_options(kdevqtc-qmlsupport PRIVATE "-Wno-class-memaccess") endif() endif() if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") target_compile_options(kdevqtc-qmlsupport PRIVATE "-Wno-documentation") + if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.0.0") + target_compile_options(kdevqtc-qmlsupport PRIVATE "-Wno-zero-as-null-pointer-constant") + endif() endif() target_compile_definitions(kdevqtc-qmlsupport PUBLIC -DLANGUAGEUTILS_BUILD_DIR -DQTCREATOR_UTILS_LIB -DQT_CREATOR -DQML_BUILD_STATIC_LIB) -target_include_directories(kdevqtc-qmlsupport PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) +# add as SYSTEM include dir so compiler does not emit warnings for the lib headers +target_include_directories(kdevqtc-qmlsupport SYSTEM PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(kdevqtc-qmlsupport LINK_PRIVATE Qt5::Core Qt5::Gui