From 2cdf59e8ccb1fb11633324a4a2804503eec11de3 Mon Sep 17 00:00:00 2001 From: "Friedrich W. H. Kossebau" Date: Sat, 10 Jul 2021 12:09:24 +0200 Subject: Revert "KDEFrameworksCompilerSettings: use latest KDECompilerSettings" Has to wait until KF requires ECM 5.85.0 This reverts commit e6f87fa7427a2edde7dd8a47ace21011169d2650. NO_CHANGELOG --- kde-modules/KDEFrameworkCompilerSettings.cmake | 41 +++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/kde-modules/KDEFrameworkCompilerSettings.cmake b/kde-modules/KDEFrameworkCompilerSettings.cmake index b53454d2..d7165f57 100644 --- a/kde-modules/KDEFrameworkCompilerSettings.cmake +++ b/kde-modules/KDEFrameworkCompilerSettings.cmake @@ -37,16 +37,33 @@ if (NOT CMAKE_CXX_STANDARD) endif() endif() +set(KDE_COMPILERSETTINGS_LEVEL 5.84.0) include(KDECompilerSettings NO_POLICY_SCOPE) +add_definitions(-DQT_NO_CAST_TO_ASCII + -DQT_NO_CAST_FROM_ASCII + -DQT_NO_URL_CAST_FROM_STRING + -DQT_NO_CAST_FROM_BYTEARRAY + -DQT_USE_QSTRINGBUILDER + -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT + ) + +if (NOT WIN32) + # Strict iterators can't be used on Windows, they lead to a link error + # when application code iterates over a QVector for instance, unless + # Qt itself was also built with strict iterators. + # See example at https://bugreports.qt.io/browse/AUTOSUITE-946 + add_definitions(-DQT_STRICT_ITERATORS) +endif() + # Some non-KF projects make (ab)use of KDEFrameworkCompilerSettings currently, -# let them only hit this when bumping their min. ECM requirement to a newer version. -if (ECM_GLOBAL_FIND_VERSION VERSION_LESS 5.79.0) - # added by KDECompilerSettings - remove_definitions( +# let them only hit this as well when bumping their min. ECM requirement to a newer version. +if (ECM_GLOBAL_FIND_VERSION VERSION_GREATER_EQUAL 5.79.0) + add_definitions( -DQT_NO_KEYWORDS -DQT_NO_FOREACH ) +else() add_definitions(-DQT_NO_SIGNALS_SLOTS_KEYWORDS) endif() @@ -55,6 +72,22 @@ add_definitions( -DKF_DEPRECATED_WARNINGS_SINCE=0x060000 ) +if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic") +endif() + +if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 5.0.0) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wzero-as-null-pointer-constant" ) + endif() +endif() + +if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 5.0.0) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wzero-as-null-pointer-constant" ) + endif() +endif() + if (ECM_GLOBAL_FIND_VERSION VERSION_GREATER_EQUAL 5.80.0) include(KDEClangFormat) # add clang-format target -- cgit v1.2.1