Export QLoggingRegistry::instance()

so we can use Q_LOGGING_CATEGORY_WITH_ENV_OVERRIDE outside QtCore.

Otherwise clang++/macos says
Undefined symbols for architecture x86_64:
"QLoggingRegistry::instance()", referenced from:
QLoggingCategoryWithEnvironmentOverride::QLoggingCategoryWithEnvironmentOverride(char const, char const) in qrhi.cpp.o

As Thiago suggested, don't export the whole class to autotests,
export only the symbols they need. This simplifies the code.

Pick-to: 6.8
Change-Id: Id653385376a2a7604dddd2f520a0a90de5a541f6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
(cherry picked from commit 8500343037950719119968a2d64e781a5635c658)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
David Faure 2025-03-12 22:16:35 +01:00 committed by Qt Cherry-pick Bot
parent b82a0cb15f
commit e8de198ef7

View File

@ -95,31 +95,29 @@ private:
QList<QLoggingRule> _rules; QList<QLoggingRule> _rules;
}; };
class Q_AUTOTEST_EXPORT QLoggingRegistry class QLoggingRegistry
{ {
Q_DISABLE_COPY_MOVE(QLoggingRegistry) Q_DISABLE_COPY_MOVE(QLoggingRegistry)
public: public:
QLoggingRegistry(); Q_AUTOTEST_EXPORT QLoggingRegistry();
void initializeRules(); Q_AUTOTEST_EXPORT void initializeRules();
void registerCategory(QLoggingCategory *category, QtMsgType enableForLevel); void registerCategory(QLoggingCategory *category, QtMsgType enableForLevel);
void unregisterCategory(QLoggingCategory *category); void unregisterCategory(QLoggingCategory *category);
#ifndef QT_BUILD_INTERNAL Q_CORE_EXPORT void registerEnvironmentOverrideForCategory(const char *categoryName,
Q_CORE_EXPORT // always export from QtCore const char *environment);
#endif
void registerEnvironmentOverrideForCategory(const char *categoryName, const char *environment);
void setApiRules(const QString &content); void setApiRules(const QString &content);
QLoggingCategory::CategoryFilter QLoggingCategory::CategoryFilter
installFilter(QLoggingCategory::CategoryFilter filter); installFilter(QLoggingCategory::CategoryFilter filter);
static QLoggingRegistry *instance(); Q_CORE_EXPORT static QLoggingRegistry *instance();
private: private:
void updateRules(); Q_AUTOTEST_EXPORT void updateRules();
static void defaultCategoryFilter(QLoggingCategory *category); static void defaultCategoryFilter(QLoggingCategory *category);