diff options
author | Marcus Tillmanns <marcus.tillmanns@qt.io> | 2024-04-19 10:46:50 +0200 |
---|---|---|
committer | Marcus Tillmanns <marcus.tillmanns@qt.io> | 2024-04-19 10:39:17 +0000 |
commit | 7cf2e4352c06f1e1fc90bd5d860470ec0310ff6b (patch) | |
tree | a106c24d4ce4e14f419eca182d331cd2b48f0547 | |
parent | 6e6d25d11707dd835f3572f341617ea85fdcf47e (diff) |
ExtensionSystem: Fix compile without WITH_TESTS
PluginSpecImpl::read is used outside of tests, but PluginSpecImpl itself
is only exported when WITH_TESTS is on. So compilation without
WITH_TESTS would fail. To circumvent this the ::read functions are moved
outside of the PluginSpecImpl and friend'd to it.
Amends b39b1925189416585933c017e189d04d6e4c478d
Change-Id: I4bd8ce087267ab4e059cff2470ff882c7db6fd78
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
-rw-r--r-- | src/libs/extensionsystem/pluginmanager.cpp | 4 | ||||
-rw-r--r-- | src/libs/extensionsystem/pluginspec.cpp | 4 | ||||
-rw-r--r-- | src/libs/extensionsystem/pluginspec.h | 11 | ||||
-rw-r--r-- | src/plugins/coreplugin/plugininstallwizard.cpp | 2 | ||||
-rw-r--r-- | tests/auto/extensionsystem/pluginspec/tst_pluginspec.cpp | 8 |
5 files changed, 17 insertions, 12 deletions
diff --git a/src/libs/extensionsystem/pluginmanager.cpp b/src/libs/extensionsystem/pluginmanager.cpp index b5a64e2054..60ef637e2f 100644 --- a/src/libs/extensionsystem/pluginmanager.cpp +++ b/src/libs/extensionsystem/pluginmanager.cpp @@ -1790,7 +1790,7 @@ void PluginManagerPrivate::readPluginPaths() // from the file system for (const QString &pluginFile : pluginFiles(pluginPaths)) { - expected_str<PluginSpec *> spec = PluginSpecImpl::read(pluginFile); + expected_str<PluginSpec *> spec = readPluginSpec(pluginFile); if (!spec) { qCInfo(pluginLog).noquote() << QString("Ignoring plugin \"%1\" because: %2").arg(pluginFile).arg(spec.error()); @@ -1801,7 +1801,7 @@ void PluginManagerPrivate::readPluginPaths() // static for (const QStaticPlugin &plugin : QPluginLoader::staticPlugins()) { - expected_str<PluginSpec *> spec = PluginSpecImpl::read(plugin); + expected_str<PluginSpec *> spec = readPluginSpec(plugin); QTC_ASSERT_EXPECTED(spec, continue); newSpecs.append(*spec); } diff --git a/src/libs/extensionsystem/pluginspec.cpp b/src/libs/extensionsystem/pluginspec.cpp index 2e80ef2c79..3165fb7911 100644 --- a/src/libs/extensionsystem/pluginspec.cpp +++ b/src/libs/extensionsystem/pluginspec.cpp @@ -692,7 +692,7 @@ namespace { \internal Returns false if the file does not represent a Qt Creator plugin. */ -expected_str<PluginSpec *> PluginSpecImpl::read(const QString &fileName) +expected_str<PluginSpec *> readPluginSpec(const QString &fileName) { auto spec = new PluginSpecImpl; @@ -715,7 +715,7 @@ expected_str<PluginSpec *> PluginSpecImpl::read(const QString &fileName) return spec; } -expected_str<PluginSpec *> PluginSpecImpl::read(const QStaticPlugin &plugin) +expected_str<PluginSpec *> readPluginSpec(const QStaticPlugin &plugin) { auto spec = new PluginSpecImpl; diff --git a/src/libs/extensionsystem/pluginspec.h b/src/libs/extensionsystem/pluginspec.h index 09b8f55618..58a5ea12a3 100644 --- a/src/libs/extensionsystem/pluginspec.h +++ b/src/libs/extensionsystem/pluginspec.h @@ -169,8 +169,16 @@ private: std::unique_ptr<Internal::PluginSpecPrivate> d; }; +EXTENSIONSYSTEM_EXPORT Utils::expected_str<PluginSpec *> readPluginSpec(const QString &filePath); +EXTENSIONSYSTEM_EXPORT Utils::expected_str<PluginSpec *> readPluginSpec(const QStaticPlugin &plugin); + class EXTENSIONSYSTEM_TEST_EXPORT PluginSpecImpl : public PluginSpec { + friend EXTENSIONSYSTEM_EXPORT Utils::expected_str<PluginSpec *> readPluginSpec( + const QString &filePath); + friend EXTENSIONSYSTEM_EXPORT Utils::expected_str<PluginSpec *> readPluginSpec( + const QStaticPlugin &plugin); + public: ~PluginSpecImpl() override; @@ -184,9 +192,6 @@ public: IPlugin::ShutdownFlag stop() override; void kill() override; - static Utils::expected_str<PluginSpec *> read(const QString &filePath); - static Utils::expected_str<PluginSpec *> read(const QStaticPlugin &plugin); - Utils::expected_str<void> readMetaData(const QJsonObject &pluginMetaData) override; protected: diff --git a/src/plugins/coreplugin/plugininstallwizard.cpp b/src/plugins/coreplugin/plugininstallwizard.cpp index df47cfb070..cb89748a1a 100644 --- a/src/plugins/coreplugin/plugininstallwizard.cpp +++ b/src/plugins/coreplugin/plugininstallwizard.cpp @@ -154,7 +154,7 @@ void checkContents(QPromise<ArchiveIssue> &promise, const FilePath &tempDir) if (promise.isCanceled()) return; it.next(); - expected_str<PluginSpec *> spec = PluginSpecImpl::read(it.filePath()); + expected_str<PluginSpec *> spec = readPluginSpec(it.filePath()); if (spec) { // Is a Qt Creator plugin. Let's see if we find a Core dependency and check the // version diff --git a/tests/auto/extensionsystem/pluginspec/tst_pluginspec.cpp b/tests/auto/extensionsystem/pluginspec/tst_pluginspec.cpp index f919ef4139..b82b12401a 100644 --- a/tests/auto/extensionsystem/pluginspec/tst_pluginspec.cpp +++ b/tests/auto/extensionsystem/pluginspec/tst_pluginspec.cpp @@ -220,7 +220,7 @@ void tst_PluginSpec::experimental() void tst_PluginSpec::locationAndPath() { - Utils::expected_str<PluginSpec *> ps = PluginSpecImpl::read( + Utils::expected_str<PluginSpec *> ps = readPluginSpec( QLatin1String(PLUGIN_DIR) + QLatin1String("/testplugin/") + libraryName(QLatin1String("test"))); QVERIFY(ps); @@ -271,7 +271,7 @@ void tst_PluginSpec::resolveDependencies() void tst_PluginSpec::loadLibrary() { - Utils::expected_str<PluginSpec *> ps = PluginSpecImpl::read( + Utils::expected_str<PluginSpec *> ps = readPluginSpec( QLatin1String(PLUGIN_DIR) + QLatin1String("/testplugin/") + libraryName(QLatin1String("test"))); @@ -291,7 +291,7 @@ void tst_PluginSpec::loadLibrary() void tst_PluginSpec::initializePlugin() { - Utils::expected_str<PluginSpec *> ps = PluginSpecImpl::read( + Utils::expected_str<PluginSpec *> ps = readPluginSpec( QLatin1String(PLUGIN_DIR) + QLatin1String("/testplugin/") + libraryName(QLatin1String("test"))); QVERIFY(ps); @@ -316,7 +316,7 @@ void tst_PluginSpec::initializePlugin() void tst_PluginSpec::initializeExtensions() { - Utils::expected_str<PluginSpec *> ps = PluginSpecImpl::read( + Utils::expected_str<PluginSpec *> ps = readPluginSpec( QLatin1String(PLUGIN_DIR) + QLatin1String("/testplugin/") + libraryName(QLatin1String("test"))); QVERIFY(ps); |