diff options
| -rw-r--r-- | kde-modules/KDEFrameworkCompilerSettings.cmake | 41 | 
1 files 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<QPoint> 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 | 
