forked from qt-creator/qt-creator
WebAssembly: Hide WebAssemblyToolchain class definition in .cpp
Change-Id: I7fbff6ff6e48b5b971b490a058b5406d011411b0 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
@@ -55,7 +55,7 @@ static void askUserAboutEmSdkSetup()
|
||||
|
||||
if (!ICore::infoBar()->canInfoBeAdded(setupWebAssemblyEmSdk)
|
||||
|| !WebAssemblyQtVersion::isQtVersionInstalled()
|
||||
|| WebAssemblyToolChain::areToolChainsRegistered())
|
||||
|| areToolChainsRegistered())
|
||||
return;
|
||||
|
||||
InfoBarEntry info(setupWebAssemblyEmSdk,
|
||||
|
@@ -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>"); };
|
||||
|
@@ -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,15 +63,10 @@ static void addRegisteredMinGWToEnvironment(Environment &env)
|
||||
env.appendOrSetPath(toolChain->compilerCommand().parentDir());
|
||||
}
|
||||
|
||||
void WebAssemblyToolChain::addToEnvironment(Environment &env) const
|
||||
class WebAssemblyToolChain final : public GccToolchain
|
||||
{
|
||||
const FilePath emSdk = settings().emSdk();
|
||||
WebAssemblyEmSdk::addToEnvironment(emSdk, env);
|
||||
if (env.osType() == OsTypeWindows)
|
||||
addRegisteredMinGWToEnvironment(env); // qmake based builds require [mingw32-]make.exe
|
||||
}
|
||||
|
||||
WebAssemblyToolChain::WebAssemblyToolChain() :
|
||||
public:
|
||||
WebAssemblyToolChain() :
|
||||
GccToolchain(Constants::WEBASSEMBLY_TOOLCHAIN_TYPEID)
|
||||
{
|
||||
setSupportedAbis({toolChainAbi()});
|
||||
@@ -70,7 +74,15 @@ WebAssemblyToolChain::WebAssemblyToolChain() :
|
||||
setTypeDisplayName(Tr::tr("Emscripten Compiler"));
|
||||
}
|
||||
|
||||
FilePath WebAssemblyToolChain::makeCommand(const Environment &environment) const
|
||||
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
|
||||
}
|
||||
|
||||
FilePath makeCommand(const Environment &environment) const final
|
||||
{
|
||||
// Diverged duplicate of ClangToolChain::makeCommand and MingwToolChain::makeCommand
|
||||
const QStringList makes = environment.osType() == OsTypeWindows
|
||||
@@ -86,17 +98,12 @@ FilePath WebAssemblyToolChain::makeCommand(const Environment &environment) const
|
||||
return FilePath::fromString(makes.first());
|
||||
}
|
||||
|
||||
bool WebAssemblyToolChain::isValid() const
|
||||
bool isValid() const final
|
||||
{
|
||||
return GccToolchain::isValid()
|
||||
&& QVersionNumber::fromString(version()) >= minimumSupportedEmSdkVersion();
|
||||
}
|
||||
|
||||
const QVersionNumber &WebAssemblyToolChain::minimumSupportedEmSdkVersion()
|
||||
{
|
||||
static const QVersionNumber number(1, 39);
|
||||
return number;
|
||||
}
|
||||
};
|
||||
|
||||
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();
|
||||
}
|
||||
|
@@ -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();
|
||||
|
||||
|
Reference in New Issue
Block a user