aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/webassembly
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2024-01-18 15:11:31 +0100
committerhjk <hjk@qt.io>2024-01-18 15:12:17 +0000
commit6aa6463f7511987acc4c1a10365efccdd7644af1 (patch)
tree9f89c400e242d4b042c8a2e07a6da31a6b69766a /src/plugins/webassembly
parenta92a4aad9a2c682467127d42cdc66e074831890b (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.cpp2
-rw-r--r--src/plugins/webassembly/webassemblysettings.cpp4
-rw-r--r--src/plugins/webassembly/webassemblytoolchain.cpp87
-rw-r--r--src/plugins/webassembly/webassemblytoolchain.h19
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, &registerToolChains);
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();