aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/webassembly
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2019-10-28 11:48:31 +0100
committerEike Ziller <eike.ziller@qt.io>2019-10-28 11:48:31 +0100
commitbea3a8fa6fd53cf1e85aa30cc45d1e62464c985d (patch)
treec9755caff5786475c51c65cfec939ec90ab6ccd2 /src/plugins/webassembly
parent3c556096caf17cf6b09a91ebf0d262d0be3f65a1 (diff)
parent3f74b04c3072b2beb23ecdd108894da4057830fc (diff)
Merge remote-tracking branch 'origin/4.11'
Diffstat (limited to 'src/plugins/webassembly')
-rw-r--r--src/plugins/webassembly/webassemblyqtversion.cpp3
-rw-r--r--src/plugins/webassembly/webassemblyrunconfiguration.cpp24
-rw-r--r--src/plugins/webassembly/webassemblyrunconfigurationaspects.cpp40
3 files changed, 38 insertions, 29 deletions
diff --git a/src/plugins/webassembly/webassemblyqtversion.cpp b/src/plugins/webassembly/webassemblyqtversion.cpp
index 54f51be4bb..ba1b0a7699 100644
--- a/src/plugins/webassembly/webassemblyqtversion.cpp
+++ b/src/plugins/webassembly/webassemblyqtversion.cpp
@@ -59,6 +59,9 @@ WebAssemblyQtVersionFactory::WebAssemblyQtVersionFactory()
setQtVersionCreator([] { return new WebAssemblyQtVersion; });
setSupportedType(Constants::WEBASSEMBLY_QT_VERSION);
setPriority(1);
+ setRestrictionChecker([](const SetupData &setup) {
+ return setup.platforms.contains("wasm");
+ });
}
} // namespace Internal
diff --git a/src/plugins/webassembly/webassemblyrunconfiguration.cpp b/src/plugins/webassembly/webassemblyrunconfiguration.cpp
index 6bed76d2dd..f4c56630fd 100644
--- a/src/plugins/webassembly/webassemblyrunconfiguration.cpp
+++ b/src/plugins/webassembly/webassemblyrunconfiguration.cpp
@@ -42,17 +42,19 @@ namespace Internal {
static CommandLine emrunCommand(Target *target, const QString &browser, const QString &port)
{
- BuildConfiguration *bc = target->activeBuildConfiguration();
- const QFileInfo emrunScript = bc->environment().searchInPath("emrun").toFileInfo();
- auto html = bc->buildDirectory().pathAppended(target->project()->displayName() + ".html");
-
- return CommandLine(bc->environment().searchInPath("python"), {
- emrunScript.absolutePath() + "/" + emrunScript.baseName() + ".py",
- "--browser", browser,
- "--port", port,
- "--no_emrun_detect",
- html.toString()
- });
+ if (BuildConfiguration *bc = target->activeBuildConfiguration()) {
+ const QFileInfo emrunScript = bc->environment().searchInPath("emrun").toFileInfo();
+ auto html = bc->buildDirectory().pathAppended(target->project()->displayName() + ".html");
+
+ return CommandLine(bc->environment().searchInPath("python"), {
+ emrunScript.absolutePath() + "/" + emrunScript.baseName() + ".py",
+ "--browser", browser,
+ "--port", port,
+ "--no_emrun_detect",
+ html.toString()
+ });
+ }
+ return {};
}
// Runs a webassembly application via emscripten's "emrun" tool
diff --git a/src/plugins/webassembly/webassemblyrunconfigurationaspects.cpp b/src/plugins/webassembly/webassemblyrunconfigurationaspects.cpp
index 49f896ce09..c4c9f8f376 100644
--- a/src/plugins/webassembly/webassemblyrunconfigurationaspects.cpp
+++ b/src/plugins/webassembly/webassemblyrunconfigurationaspects.cpp
@@ -41,24 +41,26 @@ static QStringList detectedBrowsers(ProjectExplorer::Target *target)
{
static QStringList result;
if (result.isEmpty()) {
- const Utils::Environment environment = target->activeBuildConfiguration()->environment();
- const Utils::FilePath emrunPath = environment.searchInPath("emrun");
+ if (auto bc = target->activeBuildConfiguration()) {
+ const Utils::Environment environment = bc->environment();
+ const Utils::FilePath emrunPath = environment.searchInPath("emrun");
- QProcess browserLister;
- browserLister.setProcessEnvironment(environment.toProcessEnvironment());
- browserLister.setProgram(emrunPath.toString());
- browserLister.setArguments({"--list_browsers"});
- browserLister.start(QIODevice::ReadOnly);
+ QProcess browserLister;
+ browserLister.setProcessEnvironment(environment.toProcessEnvironment());
+ browserLister.setProgram(emrunPath.toString());
+ browserLister.setArguments({"--list_browsers"});
+ browserLister.start(QIODevice::ReadOnly);
- if (browserLister.waitForFinished()) {
- const QByteArray output = browserLister.readAllStandardOutput();
- QTextStream ts(output);
- QString line;
- const QRegularExpression regExp(" - (.*):.*");
- while (ts.readLineInto(&line)) {
- const QRegularExpressionMatch match = regExp.match(line);
- if (match.hasMatch())
- result << match.captured(1);
+ if (browserLister.waitForFinished()) {
+ const QByteArray output = browserLister.readAllStandardOutput();
+ QTextStream ts(output);
+ QString line;
+ const QRegularExpression regExp(" - (.*):.*");
+ while (ts.readLineInto(&line)) {
+ const QRegularExpressionMatch match = regExp.match(line);
+ if (match.hasMatch())
+ result << match.captured(1);
+ }
}
}
}
@@ -68,7 +70,8 @@ static QStringList detectedBrowsers(ProjectExplorer::Target *target)
WebBrowserSelectionAspect::WebBrowserSelectionAspect(ProjectExplorer::Target *target)
: m_availableBrowsers(detectedBrowsers(target))
{
- m_currentBrowser = m_availableBrowsers.first();
+ if (!m_availableBrowsers.isEmpty())
+ m_currentBrowser = m_availableBrowsers.first();
setDisplayName(tr("Web browser"));
setId("WebBrowserAspect");
setSettingsKey("RunConfiguration.WebBrowser");
@@ -91,7 +94,8 @@ void WebBrowserSelectionAspect::addToLayout(ProjectExplorer::LayoutBuilder &buil
void WebBrowserSelectionAspect::fromMap(const QVariantMap &map)
{
- m_currentBrowser = map.value(BROWSER_KEY, m_availableBrowsers.first()).toString();
+ if (!m_availableBrowsers.isEmpty())
+ m_currentBrowser = map.value(BROWSER_KEY, m_availableBrowsers.first()).toString();
}
void WebBrowserSelectionAspect::toMap(QVariantMap &map) const