aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libs/utils/fileutils.cpp14
-rw-r--r--src/libs/utils/namevaluesdialog.cpp1
-rw-r--r--src/libs/utils/savedaction.cpp6
-rw-r--r--src/libs/utils/variant.h2
-rw-r--r--src/plugins/android/androidconfigurations.cpp5
-rw-r--r--src/plugins/android/androidextralibrarylistmodel.cpp3
-rw-r--r--src/plugins/android/androidtoolmanager.cpp6
-rw-r--r--src/plugins/clangtools/clangtoolruncontrol.cpp2
-rw-r--r--src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp2
-rw-r--r--src/plugins/coreplugin/locator/filesystemfilter.cpp7
-rw-r--r--src/plugins/cpptools/cppfilesettingspage.cpp1
-rw-r--r--src/plugins/git/branchmodel.cpp16
-rw-r--r--src/plugins/mcusupport/mcusupport.qrc2
-rw-r--r--src/plugins/mcusupport/mcusupportoptions.cpp4
-rw-r--r--src/plugins/mcusupport/mcusupportsdk.cpp35
-rw-r--r--src/plugins/mcusupport/wizards/application/BareMetal/main.cpp.tpl14
-rw-r--r--src/plugins/mcusupport/wizards/application/CMakeLists.txt2
-rw-r--r--src/plugins/mcusupport/wizards/application/FreeRTOS/main.cpp.tpl38
-rw-r--r--src/plugins/mcusupport/wizards/application/main.qml.tpl1
-rw-r--r--src/plugins/mcusupport/wizards/application/wizard.json10
-rw-r--r--src/plugins/qmlpreview/qmlpreviewruncontrol.cpp31
-rw-r--r--src/plugins/webassembly/webassemblyrunconfiguration.cpp1
22 files changed, 124 insertions, 79 deletions
diff --git a/src/libs/utils/fileutils.cpp b/src/libs/utils/fileutils.cpp
index 5901a60803..6b7b0b2a09 100644
--- a/src/libs/utils/fileutils.cpp
+++ b/src/libs/utils/fileutils.cpp
@@ -35,7 +35,7 @@
#include <QDebug>
#include <QDateTime>
#include <QOperatingSystemVersion>
-#include <QRegExp>
+#include <QRegularExpression>
#include <QTimer>
#include <QUrl>
#include <qplatformdefs.h>
@@ -325,10 +325,10 @@ QString FilePath::shortNativePath() const
QString FileUtils::fileSystemFriendlyName(const QString &name)
{
QString result = name;
- result.replace(QRegExp(QLatin1String("\\W")), QLatin1String("_"));
- result.replace(QRegExp(QLatin1String("_+")), QLatin1String("_")); // compact _
- result.remove(QRegExp(QLatin1String("^_*"))); // remove leading _
- result.remove(QRegExp(QLatin1String("_+$"))); // remove trailing _
+ result.replace(QRegularExpression(QLatin1String("\\W")), QLatin1String("_"));
+ result.replace(QRegularExpression(QLatin1String("_+")), QLatin1String("_")); // compact _
+ result.remove(QRegularExpression(QLatin1String("^_*"))); // remove leading _
+ result.remove(QRegularExpression(QLatin1String("_+$"))); // remove trailing _
if (result.isEmpty())
result = QLatin1String("unknown");
return result;
@@ -336,8 +336,8 @@ QString FileUtils::fileSystemFriendlyName(const QString &name)
int FileUtils::indexOfQmakeUnfriendly(const QString &name, int startpos)
{
- static QRegExp checkRegExp(QLatin1String("[^a-zA-Z0-9_.-]"));
- return checkRegExp.indexIn(name, startpos);
+ static const QRegularExpression checkRegExp(QLatin1String("[^a-zA-Z0-9_.-]"));
+ return checkRegExp.match(name, startpos).capturedStart();
}
QString FileUtils::qmakeFriendlyName(const QString &name)
diff --git a/src/libs/utils/namevaluesdialog.cpp b/src/libs/utils/namevaluesdialog.cpp
index 2b78dc7661..54c7a4577e 100644
--- a/src/libs/utils/namevaluesdialog.cpp
+++ b/src/libs/utils/namevaluesdialog.cpp
@@ -31,6 +31,7 @@
#include <QDialogButtonBox>
#include <QLabel>
#include <QPlainTextEdit>
+#include <QSet>
#include <QVBoxLayout>
namespace Utils {
diff --git a/src/libs/utils/savedaction.cpp b/src/libs/utils/savedaction.cpp
index 87a785f6db..beec2d3308 100644
--- a/src/libs/utils/savedaction.cpp
+++ b/src/libs/utils/savedaction.cpp
@@ -29,12 +29,12 @@
#include <utils/pathchooser.h>
#include <utils/pathlisteditor.h>
-#include <QDebug>
-#include <QSettings>
-
+#include <QActionGroup>
#include <QCheckBox>
+#include <QDebug>
#include <QGroupBox>
#include <QLineEdit>
+#include <QSettings>
#include <QSpinBox>
#include <QTextEdit>
diff --git a/src/libs/utils/variant.h b/src/libs/utils/variant.h
index 371b9312d3..baf0c27816 100644
--- a/src/libs/utils/variant.h
+++ b/src/libs/utils/variant.h
@@ -29,9 +29,7 @@
See std(::experimental)::variant.
*/
-// TODO: replace by #include <(experimental/)variant> depending on compiler and C++ version
#if __cplusplus >= 201703L
-#error Please delete variant.hpp and the #else section below, then remove this error
#include <variant>
namespace Utils {
diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp
index f5ce84007e..000cc35399 100644
--- a/src/plugins/android/androidconfigurations.cpp
+++ b/src/plugins/android/androidconfigurations.cpp
@@ -617,8 +617,9 @@ QVector<AndroidDeviceInfo> AndroidConfig::connectedDevices(const FilePath &adbTo
if (adbDevs.empty())
return devices;
- while (adbDevs.first().startsWith("* daemon"))
- adbDevs.removeFirst(); // remove the daemon logs
+ for (const QString line : adbDevs) // remove the daemon logs
+ if (line.startsWith("* daemon"))
+ adbDevs.removeOne(line);
adbDevs.removeFirst(); // remove "List of devices attached" header line
// workaround for '????????????' serial numbers:
diff --git a/src/plugins/android/androidextralibrarylistmodel.cpp b/src/plugins/android/androidextralibrarylistmodel.cpp
index 58c6c2c8a7..3a168eca4a 100644
--- a/src/plugins/android/androidextralibrarylistmodel.cpp
+++ b/src/plugins/android/androidextralibrarylistmodel.cpp
@@ -87,7 +87,8 @@ void AndroidExtraLibraryListModel::updateModel()
QTC_ASSERT(rc, return);
const ProjectNode *node = m_target->project()->findNodeForBuildKey(rc->buildKey());
- QTC_ASSERT(node, return);
+ if (!node)
+ return;
if (node->parseInProgress()) {
emit enabledChanged(false);
diff --git a/src/plugins/android/androidtoolmanager.cpp b/src/plugins/android/androidtoolmanager.cpp
index 22c40dfef9..fa88a4987f 100644
--- a/src/plugins/android/androidtoolmanager.cpp
+++ b/src/plugins/android/androidtoolmanager.cpp
@@ -206,8 +206,10 @@ AndroidDeviceInfoList AndroidToolManager::androidVirtualDevices(const Utils::Fil
if (avds.empty())
return devices;
- while (avds.first().startsWith(QLatin1String("* daemon")))
- avds.removeFirst(); // remove the daemon logs
+ for (const QString line : avds) // remove the daemon logs
+ if (line.startsWith("* daemon"))
+ avds.removeOne(line);
+
avds.removeFirst(); // remove "List of devices attached" header line
bool nextLineIsTargetLine = false;
diff --git a/src/plugins/clangtools/clangtoolruncontrol.cpp b/src/plugins/clangtools/clangtoolruncontrol.cpp
index 49bef96a7c..b60e3d0400 100644
--- a/src/plugins/clangtools/clangtoolruncontrol.cpp
+++ b/src/plugins/clangtools/clangtoolruncontrol.cpp
@@ -454,7 +454,7 @@ void ClangToolRunWorker::finalize()
{
const QString toolName = tool()->name();
if (m_filesNotAnalyzed.size() != 0) {
- appendMessage(tr("Error: Failed to analyze %1 files.").arg(m_filesAnalyzed.size()),
+ appendMessage(tr("Error: Failed to analyze %1 files.").arg(m_filesNotAnalyzed.size()),
ErrorMessageFormat);
Target *target = runControl()->target();
if (target && target->activeBuildConfiguration() && !target->activeBuildConfiguration()->buildDirectory().exists()
diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp
index 6dce6ed9fc..ee3c329141 100644
--- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp
+++ b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp
@@ -202,7 +202,6 @@ RawProjectPart makeRawProjectPart(const Utils::FilePath &projectFile,
kitInfo.cToolChain = toolchainFromFlags(kit,
originalFlags,
ProjectExplorer::Constants::C_LANGUAGE_ID);
- ToolChainKitAspect::setToolChain(kit, kitInfo.cToolChain);
}
addDriverModeFlagIfNeeded(kitInfo.cToolChain, flags, originalFlags);
rpp.setFlagsForC({kitInfo.cToolChain, flags});
@@ -211,7 +210,6 @@ RawProjectPart makeRawProjectPart(const Utils::FilePath &projectFile,
kitInfo.cxxToolChain = toolchainFromFlags(kit,
originalFlags,
ProjectExplorer::Constants::CXX_LANGUAGE_ID);
- ToolChainKitAspect::setToolChain(kit, kitInfo.cxxToolChain);
}
addDriverModeFlagIfNeeded(kitInfo.cxxToolChain, flags, originalFlags);
rpp.setFlagsForCxx({kitInfo.cxxToolChain, flags});
diff --git a/src/plugins/coreplugin/locator/filesystemfilter.cpp b/src/plugins/coreplugin/locator/filesystemfilter.cpp
index 41ad77e5c1..dcb5925842 100644
--- a/src/plugins/coreplugin/locator/filesystemfilter.cpp
+++ b/src/plugins/coreplugin/locator/filesystemfilter.cpp
@@ -102,7 +102,7 @@ QList<LocatorFilterEntry> FileSystemFilter::matchesFor(QFutureInterface<LocatorF
const QStringList files = dirInfo.entryList(fileFilter,
QDir::Name|QDir::IgnoreCase|QDir::LocaleAware);
- const QRegularExpression regExp = createRegExp(entryFileName, caseSensitivity_);
+ QRegularExpression regExp = createRegExp(entryFileName, caseSensitivity_);
if (!regExp.isValid())
return {};
@@ -122,7 +122,10 @@ QList<LocatorFilterEntry> FileSystemFilter::matchesFor(QFutureInterface<LocatorF
}
}
// file names can match with +linenumber or :linenumber
- const EditorManager::FilePathInfo fp = EditorManager::splitLineAndColumnNumber(entry);
+ const EditorManager::FilePathInfo fp = EditorManager::splitLineAndColumnNumber(entryFileName);
+ regExp = createRegExp(fp.filePath, caseSensitivity_);
+ if (!regExp.isValid())
+ return {};
const QString fileName = QFileInfo(fp.filePath).fileName();
for (const QString &file : files) {
if (future.isCanceled())
diff --git a/src/plugins/cpptools/cppfilesettingspage.cpp b/src/plugins/cpptools/cppfilesettingspage.cpp
index c706076291..a4763c3333 100644
--- a/src/plugins/cpptools/cppfilesettingspage.cpp
+++ b/src/plugins/cpptools/cppfilesettingspage.cpp
@@ -324,6 +324,7 @@ void CppFileSettingsWidget::apply()
rc.sourceSuffix = m_ui.sourceSuffixComboBox->currentText();
rc.headerSearchPaths = trimmedPaths(m_ui.headerSearchPathsEdit->text());
rc.sourceSearchPaths = trimmedPaths(m_ui.sourceSearchPathsEdit->text());
+ rc.licenseTemplatePath = licenseTemplatePath();
if (rc == *m_settings)
return;
diff --git a/src/plugins/git/branchmodel.cpp b/src/plugins/git/branchmodel.cpp
index 0a40144948..73c7ce5ba8 100644
--- a/src/plugins/git/branchmodel.cpp
+++ b/src/plugins/git/branchmodel.cpp
@@ -150,6 +150,11 @@ public:
return fn;
}
+ QString fullRef(bool includePrefix = false) const
+ {
+ return fullName(includePrefix).join('/');
+ }
+
void insert(const QStringList &path, BranchNode *n)
{
BranchNode *current = this;
@@ -186,7 +191,7 @@ public:
}
return names;
}
- return {fullName().join('/')};
+ return {fullRef()};
}
int rowOf(BranchNode *node)
@@ -346,7 +351,7 @@ QVariant BranchModel::data(const QModelIndex &index, int role) const
return res;
}
case Qt::EditRole:
- return index.column() == 0 ? node->fullName().join('/') : QVariant();
+ return index.column() == 0 ? node->fullRef() : QVariant();
case Qt::ToolTipRole:
if (!node->isLeaf())
return QVariant();
@@ -381,7 +386,7 @@ bool BranchModel::setData(const QModelIndex &index, const QVariant &value, int r
if (newName.isEmpty())
return false;
- const QString oldName = node->fullName().join('/');
+ const QString oldName = node->fullRef();
if (oldName == newName)
return false;
@@ -525,7 +530,7 @@ QString BranchModel::fullName(const QModelIndex &idx, bool includePrefix) const
return QString();
if (node == d->headNode)
return QString("HEAD");
- return node->fullName(includePrefix).join('/');
+ return node->fullRef(includePrefix);
}
QStringList BranchModel::localBranchNames() const
@@ -901,7 +906,8 @@ void BranchModel::updateUpstreamStatus(BranchNode *node)
{
if (node->tracking.isEmpty())
return;
- VcsCommand *command = d->client->asyncUpstreamStatus(d->workingDirectory, node->name, node->tracking);
+ VcsCommand *command = d->client->asyncUpstreamStatus(
+ d->workingDirectory, node->fullRef(), node->tracking);
QObject::connect(command, &VcsCommand::stdOutText, node, [this, node](const QString &text) {
const QStringList split = text.trimmed().split('\t');
QTC_ASSERT(split.size() == 2, return);
diff --git a/src/plugins/mcusupport/mcusupport.qrc b/src/plugins/mcusupport/mcusupport.qrc
index b45fb8ccc3..59ff76770b 100644
--- a/src/plugins/mcusupport/mcusupport.qrc
+++ b/src/plugins/mcusupport/mcusupport.qrc
@@ -8,6 +8,8 @@
<file>wizards/icon@2x.png</file>
<file>wizards/application/CMakeLists.txt</file>
<file>wizards/application/project.qmlproject.tpl</file>
+ <file>wizards/application/BareMetal/main.cpp.tpl</file>
+ <file>wizards/application/FreeRTOS/main.cpp.tpl</file>
<file>wizards/application/main.qml.tpl</file>
<file>wizards/application/wizard.json</file>
</qresource>
diff --git a/src/plugins/mcusupport/mcusupportoptions.cpp b/src/plugins/mcusupport/mcusupportoptions.cpp
index 894eb9cb4c..bb10f7b064 100644
--- a/src/plugins/mcusupport/mcusupportoptions.cpp
+++ b/src/plugins/mcusupport/mcusupportoptions.cpp
@@ -61,7 +61,7 @@
namespace McuSupport {
namespace Internal {
-static const int KIT_VERSION = 4; // Bumps up whenever details in Kit creation change
+static const int KIT_VERSION = 5; // Bumps up whenever details in Kit creation change
static QString packagePathFromSettings(const QString &settingsKey, const QString &defaultPath = {})
{
@@ -441,7 +441,7 @@ void McuSupportOptions::deletePackagesAndTargets()
const QVersionNumber &McuSupportOptions::supportedQulVersion()
{
- static const QVersionNumber v({1, 1});
+ static const QVersionNumber v({1, 2});
return v;
}
diff --git a/src/plugins/mcusupport/mcusupportsdk.cpp b/src/plugins/mcusupport/mcusupportsdk.cpp
index 757d919315..7dd7967997 100644
--- a/src/plugins/mcusupport/mcusupportsdk.cpp
+++ b/src/plugins/mcusupport/mcusupportsdk.cpp
@@ -99,8 +99,6 @@ static McuToolChainPackage *createArmGccPackage()
Utils::HostOsInfo::withExecutableSuffix("bin/arm-none-eabi-g++"),
"GNUArmEmbeddedToolchain",
McuToolChainPackage::TypeArmGcc);
- result->setDownloadUrl(
- "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads");
result->setEnvironmentVariableName(envVar);
return result;
}
@@ -149,19 +147,6 @@ static McuPackage *createRGLPackage()
return result;
}
-static McuPackage *createStm32CubeFwF7SdkPackage()
-{
- auto result = new McuPackage(
- McuPackage::tr("STM32Cube SDK"),
- "%{Env:STM32Cube_FW_F7_SDK_PATH}",
- "Drivers/STM32F7xx_HAL_Driver",
- "Stm32CubeFwF7Sdk");
- result->setDownloadUrl(
- "https://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32cube-mcu-packages/stm32cubef7.html");
- result->setEnvironmentVariableName("STM32Cube_FW_F7_SDK_PATH");
- return result;
-}
-
static McuPackage *createStm32CubeProgrammerPackage()
{
@@ -185,17 +170,6 @@ static McuPackage *createStm32CubeProgrammerPackage()
return result;
}
-static McuPackage *createEvkbImxrt1050SdkPackage()
-{
- auto result = new McuPackage(
- McuPackage::tr("NXP i.MXRT SDK"),
- "%{Env:EVKB_IMXRT1050_SDK_PATH}", // TODO: Try to not use 1050 specifics
- "EVKB-IMXRT1050_manifest_v3_5.xml",
- "EvkbImxrt1050Sdk");
- result->setDownloadUrl("https://mcuxpresso.nxp.com/en/welcome");
- return result;
-}
-
static McuPackage *createMcuXpressoIdePackage()
{
const char envVar[] = "MCUXpressoIDE_PATH";
@@ -318,13 +292,8 @@ static QVector<McuTarget *> targetsFromDescriptions(const QList<McuTargetDescrip
static QFileInfoList targetDescriptionFiles(const Utils::FilePath &dir)
{
- // Workaround for UL-2390: Instead of "./kits/", walk through "./lib/cmake/Qul/boards/"
- QFileInfoList result;
- QDirIterator it(dir.toString() + "/lib/cmake/Qul/boards/", {QLatin1String("*.json")},
- QDir::Files, QDirIterator::Subdirectories);
- while (it.hasNext())
- result.append(it.next());
- return result;
+ const QDir kitsDir(dir.toString() + "/kits/", "*.json");
+ return kitsDir.entryInfoList();
}
static QString freeRTOSEnvVarForPlatform(const QString &platform)
diff --git a/src/plugins/mcusupport/wizards/application/BareMetal/main.cpp.tpl b/src/plugins/mcusupport/wizards/application/BareMetal/main.cpp.tpl
new file mode 100644
index 0000000000..d6c84deeea
--- /dev/null
+++ b/src/plugins/mcusupport/wizards/application/BareMetal/main.cpp.tpl
@@ -0,0 +1,14 @@
+#include "%{ProjectName}.h"
+
+#include <qul/application.h>
+#include <qul/qul.h>
+
+int main()
+{
+ Qul::initPlatform();
+ Qul::Application app;
+ static %{ProjectName} item;
+ app.setRootItem(&item);
+ app.exec();
+ return 0;
+}
diff --git a/src/plugins/mcusupport/wizards/application/CMakeLists.txt b/src/plugins/mcusupport/wizards/application/CMakeLists.txt
index ff5871b9b5..3ad30d99ca 100644
--- a/src/plugins/mcusupport/wizards/application/CMakeLists.txt
+++ b/src/plugins/mcusupport/wizards/application/CMakeLists.txt
@@ -4,7 +4,7 @@ project(%{ProjectName} VERSION 0.0.1 LANGUAGES C CXX ASM)
find_package(Qul)
-add_executable(%{ProjectName})
+add_executable(%{ProjectName} ${OS}/main.cpp)
qul_target_qml_sources(%{ProjectName} %{MainQmlFile})
target_link_libraries(%{ProjectName} Qul::QuickUltralite)
diff --git a/src/plugins/mcusupport/wizards/application/FreeRTOS/main.cpp.tpl b/src/plugins/mcusupport/wizards/application/FreeRTOS/main.cpp.tpl
new file mode 100644
index 0000000000..43ca2e706b
--- /dev/null
+++ b/src/plugins/mcusupport/wizards/application/FreeRTOS/main.cpp.tpl
@@ -0,0 +1,38 @@
+#include "%{ProjectName}.h"
+
+#include <qul/application.h>
+#include <qul/qul.h>
+
+#include <cstdio>
+#include <FreeRTOS.h>
+#include <task.h>
+
+#ifndef QUL_STACK_SIZE
+#error QUL_STACK_SIZE must be defined.
+#endif
+
+static void Qul_Thread(void *argument);
+
+int main()
+{
+ Qul::initPlatform();
+
+ if (xTaskCreate(Qul_Thread, "QulExec", QUL_STACK_SIZE, 0, 4, 0) != pdPASS) {
+ std::printf("Task creation failed!.\\r\\n");
+ configASSERT(false);
+ }
+
+ vTaskStartScheduler();
+
+ // Should not reach this point
+ configASSERT(false);
+ return 0;
+}
+
+static void Qul_Thread(void *argument)
+{
+ Qul::Application app;
+ static %{ProjectName} item;
+ app.setRootItem(&item);
+ app.exec();
+}
diff --git a/src/plugins/mcusupport/wizards/application/main.qml.tpl b/src/plugins/mcusupport/wizards/application/main.qml.tpl
index 595c561f74..8c05a48f66 100644
--- a/src/plugins/mcusupport/wizards/application/main.qml.tpl
+++ b/src/plugins/mcusupport/wizards/application/main.qml.tpl
@@ -1,4 +1,3 @@
-pragma main;
import QtQuick 2.0
Rectangle {
diff --git a/src/plugins/mcusupport/wizards/application/wizard.json b/src/plugins/mcusupport/wizards/application/wizard.json
index 1c598507e1..b458bb010a 100644
--- a/src/plugins/mcusupport/wizards/application/wizard.json
+++ b/src/plugins/mcusupport/wizards/application/wizard.json
@@ -53,6 +53,16 @@
"openInEditor": false
},
{
+ "source": "BareMetal/main.cpp.tpl",
+ "target": "%{ProjectDirectory}/BareMetal/main.cpp",
+ "openInEditor": false
+ },
+ {
+ "source": "FreeRTOS/main.cpp.tpl",
+ "target": "%{ProjectDirectory}/FreeRTOS/main.cpp",
+ "openInEditor": false
+ },
+ {
"source": "main.qml.tpl",
"target": "%{ProjectDirectory}/%{MainQmlFile}",
"openInEditor": true
diff --git a/src/plugins/qmlpreview/qmlpreviewruncontrol.cpp b/src/plugins/qmlpreview/qmlpreviewruncontrol.cpp
index 9f22796689..c513a580f3 100644
--- a/src/plugins/qmlpreview/qmlpreviewruncontrol.cpp
+++ b/src/plugins/qmlpreview/qmlpreviewruncontrol.cpp
@@ -134,21 +134,22 @@ LocalQmlPreviewSupport::LocalQmlPreviewSupport(ProjectExplorer::RunControl *runC
const auto currentTarget = runControl->target();
const auto *qmlBuildSystem = qobject_cast<QmlProjectManager::QmlBuildSystem *>(currentTarget->buildSystem());
- const auto aspect = runControl->aspect<QmlProjectManager::QmlMainFileAspect>();
- const QString mainScript = aspect->mainScript();
- const QString currentFile = aspect->currentFile();
-
- const QString mainScriptFromProject = qmlBuildSystem->targetFile(
- Utils::FilePath::fromString(mainScript)).toString();
-
- const QString currentFileFromProject = qmlBuildSystem->targetFile(
- Utils::FilePath::fromString(currentFile)).toString();
-
- if (!currentFile.isEmpty() && qmlProjectRunConfigurationArguments.last().contains(mainScriptFromProject)) {
- qmlProjectRunConfigurationArguments.removeLast();
- auto commandLine = Utils::CommandLine(runnable.commandLine().executable(), qmlProjectRunConfigurationArguments);
- commandLine.addArg(currentFile);
- runnable.setCommandLine(commandLine);
+ if (const auto aspect = runControl->aspect<QmlProjectManager::QmlMainFileAspect>()) {
+ const QString mainScript = aspect->mainScript();
+ const QString currentFile = aspect->currentFile();
+
+ const QString mainScriptFromProject = qmlBuildSystem->targetFile(
+ Utils::FilePath::fromString(mainScript)).toString();
+
+ const QString currentFileFromProject = qmlBuildSystem->targetFile(
+ Utils::FilePath::fromString(currentFile)).toString();
+
+ if (!currentFile.isEmpty() && qmlProjectRunConfigurationArguments.last().contains(mainScriptFromProject)) {
+ qmlProjectRunConfigurationArguments.removeLast();
+ auto commandLine = Utils::CommandLine(runnable.commandLine().executable(), qmlProjectRunConfigurationArguments);
+ commandLine.addArg(currentFile);
+ runnable.setCommandLine(commandLine);
+ }
}
Utils::QtcProcess::addArg(&runnable.commandLineArguments,
diff --git a/src/plugins/webassembly/webassemblyrunconfiguration.cpp b/src/plugins/webassembly/webassemblyrunconfiguration.cpp
index 2bb8861b71..977e61b0fe 100644
--- a/src/plugins/webassembly/webassemblyrunconfiguration.cpp
+++ b/src/plugins/webassembly/webassemblyrunconfiguration.cpp
@@ -51,6 +51,7 @@ static CommandLine emrunCommand(Target *target, const QString &browser, const QS
"--browser", browser,
"--port", port,
"--no_emrun_detect",
+ "--serve_after_close",
html.toString()
});
}