Mark GTK theme plugin as free of Q_FOREACH, except where it isn't

The density of Q_FOREACH uses isn't very high here, but at this time,
this author just goes through the code-base and white-lists TUs that
still use Q_FOREACH in order to globally enable QT_NO_FOREACH.

Mark the whole plugin with QT_NO_FOREACH, to prevent new uses from
creeping in, and whitelist the affected TU by #undef'ing QT_NO_FOREACH
locally, at the top of each file. Since the TU is part of a larger
executable, this requires the file to be compiled separately, so add
it to NO_PCH_SOURCES (which implies NO_UNITY_BUILD_SOURCES, too).

Task-number: QTBUG-115839
Change-Id: If731d02f65131c94afa8beb51679ed2ff7d2cdaa
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
bb10
Marc Mutz 2023-08-07 17:42:52 +02:00
parent cc15e42e2c
commit 5dd29e7835
2 changed files with 5 additions and 0 deletions

View File

@ -23,8 +23,11 @@ qt_internal_add_plugin(QGtk3ThemePlugin
qgtk3interface.cpp qgtk3interface_p.h
qgtk3storage.cpp qgtk3storage_p.h
qgtk3json.cpp qgtk3json_p.h
NO_PCH_SOURCES
qgtk3dialoghelpers.cpp # undef QT_NO_FOREACH
DEFINES
GDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_6
QT_NO_FOREACH
LIBRARIES
PkgConfig::GTK3
Qt::Core

View File

@ -1,6 +1,8 @@
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#undef QT_NO_FOREACH // this file contains unported legacy Q_FOREACH uses
#include "qgtk3dialoghelpers.h"
#include "qgtk3theme.h"