diff options
author | Eike Ziller <eike.ziller@qt.io> | 2019-10-28 11:48:31 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2019-10-28 11:48:31 +0100 |
commit | bea3a8fa6fd53cf1e85aa30cc45d1e62464c985d (patch) | |
tree | c9755caff5786475c51c65cfec939ec90ab6ccd2 /src/plugins/webassembly | |
parent | 3c556096caf17cf6b09a91ebf0d262d0be3f65a1 (diff) | |
parent | 3f74b04c3072b2beb23ecdd108894da4057830fc (diff) |
Merge remote-tracking branch 'origin/4.11'
Change-Id: I66389d88d5a60c6c86547b93cca945af42aa807b
Diffstat (limited to 'src/plugins/webassembly')
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 |