Warning, /frameworks/extra-cmake-modules/kde-modules/KDEFrameworkCompilerLegacySettings.cmake is written in an unsupported language. File is not indexed.

0001 # SPDX-FileCopyrightText: 2013 Albert Astals Cid <aacid@kde.org>
0002 # SPDX-FileCopyrightText: 2007 Matthias Kretz <kretz@kde.org>
0003 # SPDX-FileCopyrightText: 2006-2007 Laurent Montel <montel@kde.org>
0004 # SPDX-FileCopyrightText: 2006-2013 Alex Neundorf <neundorf@kde.org>
0005 #
0006 # SPDX-License-Identifier: BSD-3-Clause
0007 
0008 #[=======================================================================[
0009 Backward-compatibility support
0010 ------------------------------
0011 
0012 For all the non-KF projects which reused the KDEFrameworkCompilerSettings
0013 module to get more strict settings.
0014 
0015 Kept as is, to be removed on next backward-compatibility-breakage occasion.
0016 #]=======================================================================]
0017 
0018 if (NOT CMAKE_CXX_STANDARD)
0019     if (ECM_GLOBAL_FIND_VERSION VERSION_GREATER_EQUAL 5.84.0)
0020         set(CMAKE_CXX_STANDARD 17)
0021         set(CMAKE_CXX_STANDARD_REQUIRED ON)
0022         set(CMAKE_CXX_EXTENSIONS OFF)
0023     endif()
0024 endif()
0025 
0026 include(KDECompilerSettings NO_POLICY_SCOPE)
0027 
0028 add_definitions(-DQT_NO_CAST_TO_ASCII
0029                 -DQT_NO_CAST_FROM_ASCII
0030                 -DQT_NO_URL_CAST_FROM_STRING
0031                 -DQT_NO_CAST_FROM_BYTEARRAY
0032                 -DQT_USE_QSTRINGBUILDER
0033                 -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT
0034                )
0035 
0036 if (NOT WIN32)
0037     # Strict iterators can't be used on Windows, they lead to a link error
0038     # when application code iterates over a QVector<QPoint> for instance, unless
0039     # Qt itself was also built with strict iterators.
0040     # See example at https://bugreports.qt.io/browse/AUTOSUITE-946
0041     add_definitions(-DQT_STRICT_ITERATORS)
0042 endif()
0043 
0044 # Some non-KF projects make (ab)use of KDEFrameworkCompilerSettings currently,
0045 # let them only hit this as well when bumping their min. ECM requirement to a newer version.
0046 if (ECM_GLOBAL_FIND_VERSION VERSION_GREATER_EQUAL 5.79.0)
0047     add_definitions(
0048         -DQT_NO_KEYWORDS
0049         -DQT_NO_FOREACH
0050     )
0051 else()
0052     add_definitions(-DQT_NO_SIGNALS_SLOTS_KEYWORDS)
0053 endif()
0054 
0055 add_definitions(
0056     -DQT_DEPRECATED_WARNINGS_SINCE=0x060000
0057     -DKF_DEPRECATED_WARNINGS_SINCE=0x060000
0058 )
0059 
0060 if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
0061    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic")
0062 endif()
0063 
0064 if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
0065    if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 5.0.0)
0066       set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wzero-as-null-pointer-constant" )
0067    endif()
0068 endif()
0069 
0070 if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
0071    if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 5.0.0)
0072       set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wzero-as-null-pointer-constant" )
0073    endif()
0074 endif()
0075 
0076 if (ECM_GLOBAL_FIND_VERSION VERSION_GREATER_EQUAL 5.80.0)
0077     include(KDEClangFormat)
0078     # add clang-format target
0079     file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h *.hpp *.c)
0080     kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0081 endif ()