qt5base-lts/sync.profile
Fabian Kosmale fb0c7a9956 QVariant: reduce transitive includes
Forward declare more types in qvariant.h, and do the same for qdebug.h
(which will be removed from qvariant in a separate patch).

As we now only forward declare containers (e.g. QMap, QList, ...), code
which includes <QVariantMap>, <QVariantList>... breaks without further
adjustment: So far, those headers simply included qvariant.h. However,
by introducing new actual headers for those types and adjusting
sync.profile, we can avoid this issue.

To avoid breaking leaf modules and user code, we make the change opt-in:
Unless QT_LEAN_HEADERS is defined to a value of >= 1, we still
include the superfluous headers. We also set this macro in qtbase via
QT_EXTRA_INTERNAL_TARGET_DEFINES.

[ChangeLog][Potentially Source-Incompatible Changes] qvariant.h no
longer includes <QList>, <QMap>, <QHash>, <QVarLengthArray>, <QSet> and
<QObject>. Code that relied on transitive includes might need to
explicitly include those headers now. Notably, including <QVariant> (or
qvariant.h) is no longer sufficient when using QVariant(List|Map|Hash).
Using them now requires including respectively <QVariantList>,
<QVariantMap>, or <QVariantHash>. Alternatively, including <QVariant>
and the <QList>, <QMap> or <QHash> header also works.

[ChangeLog][Potentially Source-Incompatible Changes] qdebug.h no longer
includes <QSet>, <QHash>, <QVarLengthArray> and <QMap>. Code that relied
on transitive includes might need to explicitly include those headers
now.

Task-number: QTBUG-97601
Change-Id: I142e5de709ed0b305716369a3266389ab7fbbb71
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2022-03-17 16:14:38 +00:00

92 lines
4.3 KiB
Plaintext

%modules = (
# path to module name map
# "module_name" => "path to look for headers"
# ! - for non qt module
# > - points to directory where module was defined in cmake file
"QtGui" => "$basedir/src/gui",
"QtWidgets" => "$basedir/src/widgets",
"QtPrintSupport" => "$basedir/src/printsupport",
"QtOpenGL" => "$basedir/src/opengl",
"QtOpenGLWidgets" => "$basedir/src/openglwidgets",
"QtCore" => "$basedir/src/corelib",
"QtXml" => "$basedir/src/xml",
"QtSql" => "$basedir/src/sql",
"QtNetwork" => "$basedir/src/network",
"QtTest" => "$basedir/src/testlib",
"QtDBus" => "$basedir/src/dbus",
"QtConcurrent" => "$basedir/src/concurrent",
"QtDeviceDiscoverySupport" => "$basedir/src/platformsupport/devicediscovery",
"QtInputSupport" => "$basedir/src/platformsupport/input",
"QtFbSupport" => "$basedir/src/platformsupport/fbconvenience",
"QtKmsSupport" => "$basedir/src/platformsupport/kmsconvenience",
"QtZlib" => "!>$basedir/src/corelib;$basedir/src/3rdparty/zlib/src",
"QtPng" => "!>$basedir/src/3rdparty/libpng;$basedir/src/3rdparty/libpng",
"QtJpeg" => "!>$basedir/src/3rdparty/libjpeg;$basedir/src/3rdparty/libjpeg/src",
"QtHarfbuzz" => "!>$basedir/src/3rdparty/harfbuzz-ng;$basedir/src/3rdparty/harfbuzz-ng/include",
"QtFreetype" => "!>$basedir/src/3rdparty/freetype;$basedir/src/3rdparty/freetype/include",
"QtEglFSDeviceIntegration" => "$basedir/src/plugins/platforms/eglfs",
"QtEglFsKmsSupport" => "$basedir/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support",
"QtEglFsKmsGbmSupport" => "$basedir/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms",
"QtMockPlugins1" => "$basedir/tests/auto/cmake/mockplugins/mockplugins1",
"QtMockPlugins2" => "$basedir/tests/auto/cmake/mockplugins/mockplugins2",
"QtMockPlugins3" => "$basedir/tests/auto/cmake/mockplugins/mockplugins3",
"QtMockStaticResources1" => "$basedir/tests/auto/cmake/test_static_resources/mock_static_resources1",
"QtTestAutogeneratingCppExports" => "$basedir/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports",
"QtTestAutogeneratingCppExportsCustomName" => "$basedir/tests/auto/cmake/test_generating_cpp_exports/test_autogenerating_cpp_exports_custom_name",
);
%moduleheaders = ( # restrict the module headers to those found in relative path
"QtEglFSDeviceIntegration" => "api",
);
@allmoduleheadersprivate = (
);
%classnames = (
"qglobal.h" => "QtGlobal",
"qendian.h" => "QtEndian",
"qconfig.h" => "QtConfig",
"qplugin.h" => "QtPlugin",
"qalgorithms.h" => "QtAlgorithms",
"qvector.h" => "QVector",
"qcontainerfwd.h" => "QtContainerFwd",
"qdebug.h" => "QtDebug",
"qevent.h" => "QtEvents",
"qnamespace.h" => "Qt",
"qnumeric.h" => "QtNumeric",
"qvulkanfunctions.h" => "QVulkanFunctions,QVulkanDeviceFunctions",
"qgl.h" => "QGL",
"qtsqlglobal.h" => "QSql",
"qssl.h" => "QSsl",
"qtest.h" => "QTest",
"qtconcurrentmap.h" => "QtConcurrentMap",
"qtconcurrentfilter.h" => "QtConcurrentFilter",
"qtconcurrentrun.h" => "QtConcurrentRun",
"qpassworddigestor.h" => "QPasswordDigestor",
"qutf8stringview.h" => "QUtf8StringView",
);
%deprecatedheaders = (
"QtGui" => {
"QGenericPlugin" => "QtGui/QGenericPlugin",
"QGenericPluginFactory" => "QtGui/QGenericPluginFactory"
},
"QtSql" => {
"qsql.h" => "QtSql/qtsqlglobal.h"
},
"QtDBus" => {
"qdbusmacros.h" => "QtDbus/qtdbusglobal.h"
},
"QtTest" => {
"qtest_global.h" => "QtTest/qttestglobal.h"
}
);
@qpa_headers = ( qr/^qplatform/, qr/^qwindowsystem/ );
my @internal_zlib_headers = ( "crc32.h", "deflate.h", "gzguts.h", "inffast.h", "inffixed.h", "inflate.h", "inftrees.h", "trees.h", "zutil.h" );
my @zlib_headers = ( "zconf.h", "zlib.h" );
my @internal_qtnetwork_headers = ( "qurltlds_p.h" );
@ignore_headers = ( @internal_zlib_headers, @internal_qtnetwork_headers );
@ignore_for_include_check = ( "qsystemdetection.h", "qcompilerdetection.h", "qprocessordetection.h", @zlib_headers);
@ignore_for_qt_begin_namespace_check = ( "qt_windows.h", @zlib_headers);
%inject_headers = (
"$basedir/src/corelib/global" => [ "qconfig.h", "qconfig_p.h" ],
"$basedir/src/gui/vulkan" => [ "^qvulkanfunctions.h", "^qvulkanfunctions_p.h" ]
);