diff options
author | hjk <hjk@qt.io> | 2024-01-18 15:11:31 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2024-01-18 15:12:17 +0000 |
commit | 6aa6463f7511987acc4c1a10365efccdd7644af1 (patch) | |
tree | 9f89c400e242d4b042c8a2e07a6da31a6b69766a /src/plugins/webassembly | |
parent | a92a4aad9a2c682467127d42cdc66e074831890b (diff) |
WebAssembly: Hide WebAssemblyToolchain class definition in .cpp
Change-Id: I7fbff6ff6e48b5b971b490a058b5406d011411b0
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Diffstat (limited to 'src/plugins/webassembly')
-rw-r--r-- | src/plugins/webassembly/webassemblydevice.cpp | 2 | ||||
-rw-r--r-- | src/plugins/webassembly/webassemblysettings.cpp | 4 | ||||
-rw-r--r-- | src/plugins/webassembly/webassemblytoolchain.cpp | 87 | ||||
-rw-r--r-- | src/plugins/webassembly/webassemblytoolchain.h | 19 |
4 files changed, 53 insertions, 59 deletions
diff --git a/src/plugins/webassembly/webassemblydevice.cpp b/src/plugins/webassembly/webassemblydevice.cpp index 37b042124b..e3f798b207 100644 --- a/src/plugins/webassembly/webassemblydevice.cpp +++ b/src/plugins/webassembly/webassemblydevice.cpp @@ -55,7 +55,7 @@ static void askUserAboutEmSdkSetup() if (!ICore::infoBar()->canInfoBeAdded(setupWebAssemblyEmSdk) || !WebAssemblyQtVersion::isQtVersionInstalled() - || WebAssemblyToolChain::areToolChainsRegistered()) + || areToolChainsRegistered()) return; InfoBarEntry info(setupWebAssemblyEmSdk, diff --git a/src/plugins/webassembly/webassemblysettings.cpp b/src/plugins/webassembly/webassemblysettings.cpp index 88a7cc2213..d09919a05b 100644 --- a/src/plugins/webassembly/webassemblysettings.cpp +++ b/src/plugins/webassembly/webassemblysettings.cpp @@ -59,7 +59,7 @@ WebAssemblySettings::WebAssemblySettings() emSdk.setExpectedKind(Utils::PathChooser::ExistingDirectory); emSdk.setDefaultValue(QDir::homePath()); - connect(this, &Utils::AspectContainer::applied, &WebAssemblyToolChain::registerToolChains); + connect(this, &Utils::AspectContainer::applied, ®isterToolChains); setLayouter([this] { auto instruction = new QLabel( @@ -138,7 +138,7 @@ void WebAssemblySettings::updateStatus() if (sdkValid) { const QVersionNumber sdkVersion = WebAssemblyEmSdk::version(newEmSdk); - const QVersionNumber minVersion = WebAssemblyToolChain::minimumSupportedEmSdkVersion(); + const QVersionNumber minVersion = minimumSupportedEmSdkVersion(); const bool versionTooLow = sdkVersion < minVersion; m_emSdkVersionDisplay->setType(versionTooLow ? InfoLabel::NotOk : InfoLabel::Ok); auto bold = [](const QString &text) { return QString("<b>" + text + "</b>"); }; diff --git a/src/plugins/webassembly/webassemblytoolchain.cpp b/src/plugins/webassembly/webassemblytoolchain.cpp index 212876e92e..b7f62be7a4 100644 --- a/src/plugins/webassembly/webassemblytoolchain.cpp +++ b/src/plugins/webassembly/webassemblytoolchain.cpp @@ -9,6 +9,7 @@ #include "webassemblytr.h" #include <projectexplorer/devicesupport/devicemanager.h> +#include <projectexplorer/gcctoolchain.h> #include <projectexplorer/kitmanager.h> #include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/projectmacro.h> @@ -22,6 +23,8 @@ #include <utils/hostosinfo.h> #include <utils/qtcassert.h> +#include <QVersionNumber> + using namespace ProjectExplorer; using namespace QtSupport; using namespace Utils; @@ -39,6 +42,12 @@ static const Abi &toolChainAbi() return abi; } +const QVersionNumber &minimumSupportedEmSdkVersion() +{ + static const QVersionNumber number(1, 39); + return number; +} + static void addRegisteredMinGWToEnvironment(Environment &env) { if (!ToolchainManager::isLoaded()) { @@ -54,49 +63,47 @@ static void addRegisteredMinGWToEnvironment(Environment &env) env.appendOrSetPath(toolChain->compilerCommand().parentDir()); } -void WebAssemblyToolChain::addToEnvironment(Environment &env) const -{ - const FilePath emSdk = settings().emSdk(); - WebAssemblyEmSdk::addToEnvironment(emSdk, env); - if (env.osType() == OsTypeWindows) - addRegisteredMinGWToEnvironment(env); // qmake based builds require [mingw32-]make.exe -} - -WebAssemblyToolChain::WebAssemblyToolChain() : - GccToolchain(Constants::WEBASSEMBLY_TOOLCHAIN_TYPEID) +class WebAssemblyToolChain final : public GccToolchain { - setSupportedAbis({toolChainAbi()}); - setTargetAbi(toolChainAbi()); - setTypeDisplayName(Tr::tr("Emscripten Compiler")); -} +public: + WebAssemblyToolChain() : + GccToolchain(Constants::WEBASSEMBLY_TOOLCHAIN_TYPEID) + { + setSupportedAbis({toolChainAbi()}); + setTargetAbi(toolChainAbi()); + setTypeDisplayName(Tr::tr("Emscripten Compiler")); + } -FilePath WebAssemblyToolChain::makeCommand(const Environment &environment) const -{ - // Diverged duplicate of ClangToolChain::makeCommand and MingwToolChain::makeCommand - const QStringList makes = environment.osType() == OsTypeWindows - ? QStringList({"mingw32-make.exe", "make.exe"}) - : QStringList({"make"}); - - FilePath tmp; - for (const QString &make : makes) { - tmp = environment.searchInPath(make); - if (!tmp.isEmpty()) - return tmp; + void addToEnvironment(Environment &env) const final + { + const FilePath emSdk = settings().emSdk(); + WebAssemblyEmSdk::addToEnvironment(emSdk, env); + if (env.osType() == OsTypeWindows) + addRegisteredMinGWToEnvironment(env); // qmake based builds require [mingw32-]make.exe } - return FilePath::fromString(makes.first()); -} -bool WebAssemblyToolChain::isValid() const -{ - return GccToolchain::isValid() - && QVersionNumber::fromString(version()) >= minimumSupportedEmSdkVersion(); -} + FilePath makeCommand(const Environment &environment) const final + { + // Diverged duplicate of ClangToolChain::makeCommand and MingwToolChain::makeCommand + const QStringList makes = environment.osType() == OsTypeWindows + ? QStringList({"mingw32-make.exe", "make.exe"}) + : QStringList({"make"}); + + FilePath tmp; + for (const QString &make : makes) { + tmp = environment.searchInPath(make); + if (!tmp.isEmpty()) + return tmp; + } + return FilePath::fromString(makes.first()); + } -const QVersionNumber &WebAssemblyToolChain::minimumSupportedEmSdkVersion() -{ - static const QVersionNumber number(1, 39); - return number; -} + bool isValid() const final + { + return GccToolchain::isValid() + && QVersionNumber::fromString(version()) >= minimumSupportedEmSdkVersion(); + } +}; static Toolchains doAutoDetect(const ToolchainDetector &detector) { @@ -136,7 +143,7 @@ static Toolchains doAutoDetect(const ToolchainDetector &detector) return result; } -void WebAssemblyToolChain::registerToolChains() +void registerToolChains() { // Remove old toolchains for (Toolchain *tc : ToolchainManager::findToolchains(toolChainAbi())) { @@ -162,7 +169,7 @@ void WebAssemblyToolChain::registerToolChains() } } -bool WebAssemblyToolChain::areToolChainsRegistered() +bool areToolChainsRegistered() { return !ToolchainManager::findToolchains(toolChainAbi()).isEmpty(); } diff --git a/src/plugins/webassembly/webassemblytoolchain.h b/src/plugins/webassembly/webassemblytoolchain.h index fca0249c1d..14dd220900 100644 --- a/src/plugins/webassembly/webassemblytoolchain.h +++ b/src/plugins/webassembly/webassemblytoolchain.h @@ -3,26 +3,13 @@ #pragma once -#include <projectexplorer/gcctoolchain.h> - #include <QVersionNumber> namespace WebAssembly::Internal { -class WebAssemblyToolChain final : public ProjectExplorer::GccToolchain -{ -public: - WebAssemblyToolChain(); - - void addToEnvironment(Utils::Environment &env) const override; - - Utils::FilePath makeCommand(const Utils::Environment &environment) const override; - bool isValid() const override; - - static const QVersionNumber &minimumSupportedEmSdkVersion(); - static void registerToolChains(); - static bool areToolChainsRegistered(); -}; +const QVersionNumber &minimumSupportedEmSdkVersion(); +void registerToolChains(); +bool areToolChainsRegistered(); void setupWebAssemblyToolchain(); |