aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--VERSION2
-rw-r--r--src/app/qbs-setup-toolchains/msvcprobe.cpp3
-rw-r--r--src/app/qbs-setup-toolchains/probe.cpp12
-rw-r--r--src/app/qbs-setup-toolchains/xcodeprobe.cpp12
-rw-r--r--src/lib/corelib/api/internaljobs.cpp7
-rw-r--r--src/lib/corelib/api/internaljobs.h2
-rw-r--r--src/lib/corelib/api/project.cpp21
-rw-r--r--src/lib/corelib/api/projectdata.cpp18
-rw-r--r--src/lib/corelib/api/runenvironment.cpp22
-rw-r--r--src/lib/corelib/buildgraph/abstractcommandexecutor.cpp4
-rw-r--r--src/lib/corelib/buildgraph/abstractcommandexecutor.h2
-rw-r--r--src/lib/corelib/buildgraph/artifactcleaner.cpp14
-rw-r--r--src/lib/corelib/buildgraph/artifactcleaner.h2
-rw-r--r--src/lib/corelib/buildgraph/buildgraphloader.cpp4
-rw-r--r--src/lib/corelib/buildgraph/buildgraphloader.h2
-rw-r--r--src/lib/corelib/buildgraph/cycledetector.cpp7
-rw-r--r--src/lib/corelib/buildgraph/cycledetector.h2
-rw-r--r--src/lib/corelib/buildgraph/depscanner.cpp4
-rw-r--r--src/lib/corelib/buildgraph/depscanner.h2
-rw-r--r--src/lib/corelib/buildgraph/emptydirectoriesremover.cpp4
-rw-r--r--src/lib/corelib/buildgraph/emptydirectoriesremover.h2
-rw-r--r--src/lib/corelib/buildgraph/executor.cpp23
-rw-r--r--src/lib/corelib/buildgraph/executor.h2
-rw-r--r--src/lib/corelib/buildgraph/inputartifactscanner.cpp11
-rw-r--r--src/lib/corelib/buildgraph/inputartifactscanner.h2
-rw-r--r--src/lib/corelib/buildgraph/jscommandexecutor.cpp4
-rw-r--r--src/lib/corelib/buildgraph/processcommandexecutor.cpp6
-rw-r--r--src/lib/corelib/buildgraph/productinstaller.cpp16
-rw-r--r--src/lib/corelib/buildgraph/productinstaller.h6
-rw-r--r--src/lib/corelib/buildgraph/projectbuilddata.cpp2
-rw-r--r--src/lib/corelib/buildgraph/projectbuilddata.h2
-rw-r--r--src/lib/corelib/buildgraph/rulesapplicator.cpp30
-rw-r--r--src/lib/corelib/buildgraph/rulesapplicator.h8
-rw-r--r--src/lib/corelib/buildgraph/rulesevaluationcontext.cpp4
-rw-r--r--src/lib/corelib/buildgraph/rulesevaluationcontext.h2
-rw-r--r--src/lib/corelib/buildgraph/transformer.cpp3
-rw-r--r--src/lib/corelib/buildgraph/transformerchangetracking.cpp3
-rw-r--r--src/lib/corelib/generators/generatableprojectiterator.cpp4
-rw-r--r--src/lib/corelib/generators/generatableprojectiterator.h2
-rw-r--r--src/lib/corelib/generators/generator.cpp2
-rw-r--r--src/lib/corelib/jsextensions/environmentextension.cpp3
-rw-r--r--src/lib/corelib/language/astimportshandler.cpp6
-rw-r--r--src/lib/corelib/language/builtindeclarations.cpp3
-rw-r--r--src/lib/corelib/language/item.cpp3
-rw-r--r--src/lib/corelib/language/itemreaderastvisitor.cpp4
-rw-r--r--src/lib/corelib/language/itemreaderastvisitor.h2
-rw-r--r--src/lib/corelib/language/language.cpp4
-rw-r--r--src/lib/corelib/language/language.h2
-rw-r--r--src/lib/corelib/language/loader.cpp6
-rw-r--r--src/lib/corelib/language/loader.h2
-rw-r--r--src/lib/corelib/language/moduleloader.cpp13
-rw-r--r--src/lib/corelib/language/projectresolver.cpp16
-rw-r--r--src/lib/corelib/language/projectresolver.h6
-rw-r--r--src/lib/corelib/language/scriptengine.cpp8
-rw-r--r--src/lib/corelib/language/scriptengine.h4
-rw-r--r--src/lib/corelib/language/value.cpp4
-rw-r--r--src/lib/corelib/language/value.h2
-rw-r--r--src/lib/corelib/logging/logger.cpp3
-rw-r--r--src/lib/corelib/tools/applecodesignutils.cpp6
-rw-r--r--src/lib/corelib/tools/buildgraphlocker.cpp4
-rw-r--r--src/lib/corelib/tools/buildgraphlocker.h2
-rw-r--r--src/lib/corelib/tools/executablefinder.cpp7
-rw-r--r--src/lib/corelib/tools/executablefinder.h4
-rw-r--r--src/lib/corelib/tools/fileinfo.cpp5
-rw-r--r--src/lib/corelib/tools/filesaver.cpp4
-rw-r--r--src/lib/corelib/tools/filesaver.h2
-rw-r--r--src/lib/corelib/tools/jsliterals.cpp3
-rw-r--r--src/lib/corelib/tools/msvcinfo.cpp8
-rw-r--r--src/lib/corelib/tools/preferences.cpp16
-rw-r--r--src/lib/corelib/tools/preferences.h4
-rw-r--r--src/lib/corelib/tools/settingscreator.cpp10
-rw-r--r--src/lib/corelib/tools/settingscreator.h2
-rw-r--r--src/lib/corelib/tools/settingsmodel.cpp6
-rw-r--r--src/lib/corelib/tools/setupprojectparameters.cpp4
-rw-r--r--src/lib/corelib/tools/setupprojectparameters.h2
-rw-r--r--src/lib/corelib/tools/vsenvironmentdetector.cpp12
-rw-r--r--src/libexec/qbs_processlauncher/launchersockethandler.cpp4
-rw-r--r--src/libexec/qbs_processlauncher/launchersockethandler.h2
-rw-r--r--src/plugins/generator/clangcompilationdb/clangcompilationdbgenerator.cpp12
-rw-r--r--src/plugins/generator/makefilegenerator/makefilegenerator.cpp33
-rw-r--r--src/plugins/generator/visualstudio/io/visualstudiosolutionwriter.cpp9
-rw-r--r--src/plugins/generator/visualstudio/msbuildfiltersproject.cpp6
-rw-r--r--src/plugins/generator/visualstudio/msbuildqbsproductproject.cpp9
-rw-r--r--src/plugins/generator/visualstudio/solution/visualstudiosolution.cpp4
-rw-r--r--src/plugins/generator/visualstudio/visualstudiogenerator.cpp8
-rw-r--r--tests/auto/api/testdata/excluded-inputs/excluded-inputs.qbs2
-rw-r--r--tests/auto/api/tst_api.cpp11
-rw-r--r--tests/auto/blackbox/tst_blackbox.cpp4
-rw-r--r--tests/auto/blackbox/tst_blackboxapple.cpp3
-rw-r--r--tests/auto/blackbox/tst_clangdb.cpp3
-rw-r--r--tests/auto/tools/tst_tools.cpp48
91 files changed, 367 insertions, 263 deletions
diff --git a/VERSION b/VERSION
index feaae22ba..850e74240 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.13.0
+1.14.0
diff --git a/src/app/qbs-setup-toolchains/msvcprobe.cpp b/src/app/qbs-setup-toolchains/msvcprobe.cpp
index a6292d860..faacb4d09 100644
--- a/src/app/qbs-setup-toolchains/msvcprobe.cpp
+++ b/src/app/qbs-setup-toolchains/msvcprobe.cpp
@@ -213,7 +213,8 @@ static std::vector<MSVCInstallInfo> retrieveInstancesFromVSWhere(ProductType pro
.arg(parseError.errorString());
return result;
}
- for (const QJsonValue &v : jsonOutput.array()) {
+ const auto jsonArray = jsonOutput.array();
+ for (const QJsonValue &v : jsonArray) {
const QJsonObject o = v.toObject();
MSVCInstallInfo info;
info.version = o.value(QStringLiteral("installationVersion")).toString();
diff --git a/src/app/qbs-setup-toolchains/probe.cpp b/src/app/qbs-setup-toolchains/probe.cpp
index e90bafec2..c4ccbc517 100644
--- a/src/app/qbs-setup-toolchains/probe.cpp
+++ b/src/app/qbs-setup-toolchains/probe.cpp
@@ -191,8 +191,10 @@ static void setCommonProperties(Profile &profile, const QString &compilerFilePat
class ToolPathSetup
{
public:
- ToolPathSetup(Profile *profile, const QString &path, const QString &toolchainPrefix)
- : m_profile(profile), m_compilerDirPath(path), m_toolchainPrefix(toolchainPrefix)
+ ToolPathSetup(Profile *profile, QString path, QString toolchainPrefix)
+ : m_profile(profile),
+ m_compilerDirPath(std::move(path)),
+ m_toolchainPrefix(std::move(toolchainPrefix))
{
}
@@ -369,7 +371,8 @@ static void iarProbe(Settings *settings, QList<Profile> &profiles)
qStdout << Tr::tr("Trying to detect IAR toolchains...") << endl;
bool isFound = false;
- for (const QString &compilerName : knownIarCompilerNames()) {
+ const auto compilerNames = knownIarCompilerNames();
+ for (const QString &compilerName : compilerNames) {
const QString iarPath = findExecutable(HostOsInfo::appendExecutableSuffix(compilerName));
if (!iarPath.isEmpty()) {
const auto profile = createIarProfile(iarPath, settings);
@@ -387,7 +390,8 @@ static void keilProbe(Settings *settings, QList<Profile> &profiles)
qStdout << Tr::tr("Trying to detect KEIL toolchains...") << endl;
bool isFound = false;
- for (const QString &compilerName : knownKeilCompilerNames()) {
+ const auto compilerNames = knownKeilCompilerNames();
+ for (const QString &compilerName : compilerNames) {
const QString keilPath = findExecutable(HostOsInfo::appendExecutableSuffix(compilerName));
if (!keilPath.isEmpty()) {
const auto profile = createKeilProfile(keilPath, settings);
diff --git a/src/app/qbs-setup-toolchains/xcodeprobe.cpp b/src/app/qbs-setup-toolchains/xcodeprobe.cpp
index 227dc00f3..9b8acc79e 100644
--- a/src/app/qbs-setup-toolchains/xcodeprobe.cpp
+++ b/src/app/qbs-setup-toolchains/xcodeprobe.cpp
@@ -117,8 +117,9 @@ void XcodeProbe::detectDeveloperPaths()
if (!launchServices.waitForFinished(-1) || launchServices.exitCode()) {
qbsInfo() << Tr::tr("Could not detect additional Xcode installations with /usr/bin/mdfind");
} else {
- for (const QString &path : QString::fromLocal8Bit(launchServices.readAllStandardOutput())
- .split(QLatin1Char('\n'), QString::SkipEmptyParts))
+ const auto paths = QString::fromLocal8Bit(launchServices.readAllStandardOutput())
+ .split(QLatin1Char('\n'), QString::SkipEmptyParts);
+ for (const QString &path : paths)
addDeveloperPath(path + QStringLiteral("/Contents/Developer"));
}
}
@@ -188,14 +189,15 @@ void XcodeProbe::setupDefaultToolchains(const QString &devPath, const QString &x
<< QStringLiteral("appletvsimulator")
<< QStringLiteral("watchos")
<< QStringLiteral("watchsimulator");
- for (const QString &platform : platforms) {
+ for (const QString &platform : qAsConst(platforms)) {
Profile platformProfile(xcodeName + QLatin1Char('-') + platform, settings);
platformProfile.removeProfile();
platformProfile.setBaseProfile(installationProfile.name());
platformProfile.setValue(QStringLiteral("qbs.targetPlatform"), targetOS(platform));
profiles.push_back(platformProfile);
- for (const QString &arch : archList(platform)) {
+ const auto architectures = archList(platform);
+ for (const QString &arch : architectures) {
Profile archProfile(xcodeName + QLatin1Char('-') + platform + QLatin1Char('-') + arch,
settings);
archProfile.removeProfile();
@@ -211,7 +213,7 @@ void XcodeProbe::detectAll()
{
int i = 1;
detectDeveloperPaths();
- for (const QString &developerPath : developerPaths) {
+ for (const QString &developerPath : qAsConst(developerPaths)) {
QString profileName = QStringLiteral("xcode");
if (developerPath != defaultDeveloperPath) {
const auto devPath = developerPath.toStdString();
diff --git a/src/lib/corelib/api/internaljobs.cpp b/src/lib/corelib/api/internaljobs.cpp
index 4d06821fd..95c3dc02c 100644
--- a/src/lib/corelib/api/internaljobs.cpp
+++ b/src/lib/corelib/api/internaljobs.cpp
@@ -125,11 +125,11 @@ private:
};
-InternalJob::InternalJob(const Logger &logger, QObject *parent)
+InternalJob::InternalJob(Logger logger, QObject *parent)
: QObject(parent)
, m_observer(new JobObserver(this))
, m_ownsObserver(true)
- , m_logger(logger)
+ , m_logger(std::move(logger))
, m_timed(false)
{
}
@@ -162,7 +162,8 @@ void InternalJob::storeBuildGraph(const TopLevelProjectPtr &project)
project->store(logger());
} catch (const ErrorInfo &error) {
ErrorInfo fullError = this->error();
- for (const ErrorItem &item : error.items())
+ const auto items = error.items();
+ for (const ErrorItem &item : items)
fullError.append(item);
setError(fullError);
}
diff --git a/src/lib/corelib/api/internaljobs.h b/src/lib/corelib/api/internaljobs.h
index 71e6615bf..0ed9248e6 100644
--- a/src/lib/corelib/api/internaljobs.h
+++ b/src/lib/corelib/api/internaljobs.h
@@ -80,7 +80,7 @@ public:
void shareObserverWith(InternalJob *otherJob);
protected:
- explicit InternalJob(const Logger &logger, QObject *parent = nullptr);
+ explicit InternalJob(Logger logger, QObject *parent = nullptr);
JobObserver *observer() const { return m_observer; }
void setTimed(bool timed) { m_timed = timed; }
diff --git a/src/lib/corelib/api/project.cpp b/src/lib/corelib/api/project.cpp
index 42591ce2f..3ffd6b2e9 100644
--- a/src/lib/corelib/api/project.cpp
+++ b/src/lib/corelib/api/project.cpp
@@ -233,7 +233,8 @@ ResolvedProductPtr ProjectPrivate::internalProduct(const ProductData &product) c
ProductData ProjectPrivate::findProductData(const ProductData &product) const
{
- for (const ProductData &p : m_projectData.allProducts()) {
+ const auto products = m_projectData.allProducts();
+ for (const ProductData &p : products) {
if (p.name() == product.name()
&& p.profile() == product.profile()
&& p.multiplexConfigurationId() == product.multiplexConfigurationId()) {
@@ -246,7 +247,8 @@ ProductData ProjectPrivate::findProductData(const ProductData &product) const
QList<ProductData> ProjectPrivate::findProductsByName(const QString &name) const
{
QList<ProductData> list;
- for (const ProductData &p : m_projectData.allProducts()) {
+ const auto products = m_projectData.allProducts();
+ for (const ProductData &p : products) {
if (p.name() == name)
list.push_back(p);
}
@@ -255,7 +257,8 @@ QList<ProductData> ProjectPrivate::findProductsByName(const QString &name) const
GroupData ProjectPrivate::findGroupData(const ProductData &product, const QString &groupName) const
{
- for (const GroupData &g : product.groups()) {
+ const auto groups = product.groups();
+ for (const GroupData &g : groups) {
if (g.name() == groupName)
return g;
}
@@ -708,11 +711,14 @@ void ProjectPrivate::updateExternalCodeLocations(const ProjectData &project,
if (lineOffset == 0)
return;
updateLocationIfNecessary(project.d->location, changeLocation, lineOffset);
- for (const ProjectData &subProject : project.subProjects())
+ const auto subProjects = project.subProjects();
+ for (const ProjectData &subProject : subProjects)
updateExternalCodeLocations(subProject, changeLocation, lineOffset);
- for (const ProductData &product : project.products()) {
+ const auto products = project.products();
+ for (const ProductData &product : products) {
updateLocationIfNecessary(product.d->location, changeLocation, lineOffset);
- for (const GroupData &group : product.groups())
+ const auto groups = product.groups();
+ for (const GroupData &group : groups)
updateLocationIfNecessary(group.d->location, changeLocation, lineOffset);
}
}
@@ -788,7 +794,8 @@ ProjectTransformerData ProjectPrivate::transformerData()
if (!m_projectData.isValid())
retrieveProjectData(m_projectData, internalProject);
ProjectTransformerData projectTransformerData;
- for (const ProductData &productData : m_projectData.allProducts()) {
+ const auto allProducts = m_projectData.allProducts();
+ for (const ProductData &productData : allProducts) {
if (!productData.isEnabled())
continue;
const ResolvedProductConstPtr product = internalProduct(productData);
diff --git a/src/lib/corelib/api/projectdata.cpp b/src/lib/corelib/api/projectdata.cpp
index 0c3ba186d..767bd38c0 100644
--- a/src/lib/corelib/api/projectdata.cpp
+++ b/src/lib/corelib/api/projectdata.cpp
@@ -538,13 +538,14 @@ QList<ArtifactData> ProductData::targetArtifacts() const
QList<ArtifactData> ProductData::installableArtifacts() const
{
QList<ArtifactData> artifacts;
- for (const GroupData &g : groups()) {
- for (const ArtifactData &a : g.allSourceArtifacts()) {
+ for (const GroupData &g : qAsConst(d->groups)) {
+ const auto sourceArtifacts = g.allSourceArtifacts();
+ for (const ArtifactData &a : sourceArtifacts) {
if (a.installData().isInstallable())
artifacts << a;
}
}
- for (const ArtifactData &a : generatedArtifacts()) {
+ for (const ArtifactData &a : qAsConst(d->generatedArtifacts)) {
if (a.installData().isInstallable())
artifacts << a;
}
@@ -560,7 +561,8 @@ QString ProductData::targetExecutable() const
QBS_ASSERT(isValid(), return {});
if (d->moduleProperties.getModuleProperty(QStringLiteral("bundle"),
QStringLiteral("isBundle")).toBool()) {
- for (const ArtifactData &ta : targetArtifacts()) {
+ const auto artifacts = targetArtifacts();
+ for (const ArtifactData &ta : artifacts) {
if (ta.fileTags().contains(QLatin1String("bundle.application-executable"))) {
if (ta.installData().isInstallable())
return ta.installData().localInstallFilePath();
@@ -568,7 +570,8 @@ QString ProductData::targetExecutable() const
}
}
}
- for (const ArtifactData &ta : targetArtifacts()) {
+ const auto artifacts = targetArtifacts();
+ for (const ArtifactData &ta : artifacts) {
if (ta.isExecutable()) {
if (ta.installData().isInstallable())
return ta.installData().localInstallFilePath();
@@ -758,7 +761,7 @@ QList<ProjectData> ProjectData::subProjects() const
QList<ProductData> ProjectData::allProducts() const
{
QList<ProductData> productList = products();
- for (const ProjectData &pd : subProjects())
+ for (const ProjectData &pd : qAsConst(d->subProjects))
productList << pd.allProducts();
return productList;
}
@@ -769,7 +772,8 @@ QList<ProductData> ProjectData::allProducts() const
QList<ArtifactData> ProjectData::installableArtifacts() const
{
QList<ArtifactData> artifacts;
- for (const ProductData &p : allProducts())
+ const auto products = allProducts();
+ for (const ProductData &p : products)
artifacts << p.installableArtifacts();
return artifacts;
}
diff --git a/src/lib/corelib/api/runenvironment.cpp b/src/lib/corelib/api/runenvironment.cpp
index 989918207..df5b4337d 100644
--- a/src/lib/corelib/api/runenvironment.cpp
+++ b/src/lib/corelib/api/runenvironment.cpp
@@ -71,16 +71,16 @@ using namespace Internal;
class RunEnvironment::RunEnvironmentPrivate
{
public:
- RunEnvironmentPrivate(const ResolvedProductPtr &product, const TopLevelProjectConstPtr &project,
- const InstallOptions &installOptions, const QProcessEnvironment &environment,
- const QStringList &setupRunEnvConfig, Settings *settings, const Logger &logger)
- : resolvedProduct(product)
- , project(project)
- , installOptions(installOptions)
+ RunEnvironmentPrivate(ResolvedProductPtr product, TopLevelProjectConstPtr project,
+ InstallOptions installOptions, const QProcessEnvironment &environment,
+ QStringList setupRunEnvConfig, Settings *settings, Logger logger)
+ : resolvedProduct(std::move(product))
+ , project(std::move(project))
+ , installOptions(std::move(installOptions))
, environment(environment)
- , setupRunEnvConfig(setupRunEnvConfig)
+ , setupRunEnvConfig(std::move(setupRunEnvConfig))
, settings(settings)
- , logger(logger)
+ , logger(std::move(logger))
, evalContext(this->logger)
{
}
@@ -184,7 +184,8 @@ int RunEnvironment::doRunShell()
#if defined(Q_OS_LINUX)
clearenv();
#endif
- for (const QString &key : environment.keys())
+ const auto keys = environment.keys();
+ for (const QString &key : keys)
qputenv(key.toLocal8Bit().constData(), environment.value(key).toLocal8Bit());
QString command;
if (HostOsInfo::isWindowsHost()) {
@@ -260,7 +261,8 @@ static QString findMainIntent(const QString &aapt, const QString &apkFilePath)
<< QStringLiteral("badging")
<< apkFilePath);
if (aaptProcess.waitForFinished(-1)) {
- for (auto line : aaptProcess.readAllStandardOutput().split('\n')) {
+ const auto lines = aaptProcess.readAllStandardOutput().split('\n');
+ for (const auto &line : lines) {
if (line.startsWith(QByteArrayLiteral("package:")))
packageId = QString::fromStdString(readAaptBadgingAttribute(line.toStdString()));
else if (line.startsWith(QByteArrayLiteral("launchable-activity:")))
diff --git a/src/lib/corelib/buildgraph/abstractcommandexecutor.cpp b/src/lib/corelib/buildgraph/abstractcommandexecutor.cpp
index 4626c6a1a..1a1d51f11 100644
--- a/src/lib/corelib/buildgraph/abstractcommandexecutor.cpp
+++ b/src/lib/corelib/buildgraph/abstractcommandexecutor.cpp
@@ -49,14 +49,14 @@
namespace qbs {
namespace Internal {
-AbstractCommandExecutor::AbstractCommandExecutor(const Logger &logger, QObject *parent)
+AbstractCommandExecutor::AbstractCommandExecutor(Logger logger, QObject *parent)
: QObject(parent)
, m_echoMode(defaultCommandEchoMode())
, m_command(nullptr)
, m_transformer(nullptr)
, m_mainThreadScriptEngine(nullptr)
, m_dryRun(false)
- , m_logger(logger)
+ , m_logger(std::move(logger))
{
}
diff --git a/src/lib/corelib/buildgraph/abstractcommandexecutor.h b/src/lib/corelib/buildgraph/abstractcommandexecutor.h
index f140b5d82..60b2b40b2 100644
--- a/src/lib/corelib/buildgraph/abstractcommandexecutor.h
+++ b/src/lib/corelib/buildgraph/abstractcommandexecutor.h
@@ -58,7 +58,7 @@ class AbstractCommandExecutor : public QObject
{
Q_OBJECT
public:
- explicit AbstractCommandExecutor(const Internal::Logger &logger, QObject *parent = nullptr);
+ explicit AbstractCommandExecutor(Internal::Logger logger, QObject *parent = nullptr);
void setMainThreadScriptEngine(ScriptEngine *engine) { m_mainThreadScriptEngine = engine; }
void setDryRunEnabled(bool enabled) { m_dryRun = enabled; }
diff --git a/src/lib/corelib/buildgraph/artifactcleaner.cpp b/src/lib/corelib/buildgraph/artifactcleaner.cpp
index 232591e10..000dfda02 100644
--- a/src/lib/corelib/buildgraph/artifactcleaner.cpp
+++ b/src/lib/corelib/buildgraph/artifactcleaner.cpp
@@ -1,3 +1,5 @@
+#include <utility>
+
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
@@ -98,12 +100,12 @@ static void removeArtifactFromDisk(Artifact *artifact, bool dryRun, const Logger
class CleanupVisitor : public ArtifactVisitor
{
public:
- CleanupVisitor(const CleanOptions &options, const ProgressObserver *observer,
- const Logger &logger)
+ CleanupVisitor(CleanOptions options, const ProgressObserver *observer,
+ Logger logger)
: ArtifactVisitor(Artifact::Generated)
- , m_options(options)
+ , m_options(std::move(options))
, m_observer(observer)
- , m_logger(logger)
+ , m_logger(std::move(logger))
, m_hasError(false)
{
}
@@ -154,8 +156,8 @@ private:
Set<QString> m_directories;
};
-ArtifactCleaner::ArtifactCleaner(const Logger &logger, ProgressObserver *observer)
- : m_logger(logger), m_observer(observer)
+ArtifactCleaner::ArtifactCleaner(Logger logger, ProgressObserver *observer)
+ : m_logger(std::move(logger)), m_observer(observer)
{
}
diff --git a/src/lib/corelib/buildgraph/artifactcleaner.h b/src/lib/corelib/buildgraph/artifactcleaner.h
index 4d8c86ea8..5a28b981a 100644
--- a/src/lib/corelib/buildgraph/artifactcleaner.h
+++ b/src/lib/corelib/buildgraph/artifactcleaner.h
@@ -53,7 +53,7 @@ class ProgressObserver;
class ArtifactCleaner
{
public:
- ArtifactCleaner(const Logger &logger, ProgressObserver *observer);
+ ArtifactCleaner(Logger logger, ProgressObserver *observer);
void cleanup(const TopLevelProjectPtr &project, const QList<ResolvedProductPtr> &products,
const CleanOptions &options);
diff --git a/src/lib/corelib/buildgraph/buildgraphloader.cpp b/src/lib/corelib/buildgraph/buildgraphloader.cpp
index fc0492ef3..289dcea26 100644
--- a/src/lib/corelib/buildgraph/buildgraphloader.cpp
+++ b/src/lib/corelib/buildgraph/buildgraphloader.cpp
@@ -76,8 +76,8 @@
namespace qbs {
namespace Internal {
-BuildGraphLoader::BuildGraphLoader(const Logger &logger) :
- m_logger(logger)
+BuildGraphLoader::BuildGraphLoader(Logger logger) :
+ m_logger(std::move(logger))
{
}
diff --git a/src/lib/corelib/buildgraph/buildgraphloader.h b/src/lib/corelib/buildgraph/buildgraphloader.h
index 94eb01c5d..9d34e2577 100644
--- a/src/lib/corelib/buildgraph/buildgraphloader.h
+++ b/src/lib/corelib/buildgraph/buildgraphloader.h
@@ -72,7 +72,7 @@ public:
class BuildGraphLoader
{
public:
- BuildGraphLoader(const Logger &logger);
+ BuildGraphLoader(Logger logger);
~BuildGraphLoader();
BuildGraphLoadResult load(const TopLevelProjectPtr &existingProject,
diff --git a/src/lib/corelib/buildgraph/cycledetector.cpp b/src/lib/corelib/buildgraph/cycledetector.cpp
index 95afba87d..5daed55fd 100644
--- a/src/lib/corelib/buildgraph/cycledetector.cpp
+++ b/src/lib/corelib/buildgraph/cycledetector.cpp
@@ -51,8 +51,8 @@
namespace qbs {
namespace Internal {
-CycleDetector::CycleDetector(const Logger &logger)
- : m_parent(nullptr), m_logger(logger)
+CycleDetector::CycleDetector(Logger logger)
+ : m_parent(nullptr), m_logger(std::move(logger))
{
}
@@ -80,7 +80,8 @@ bool CycleDetector::visitNode(BuildGraphNode *node)
{
if (Q_UNLIKELY(m_nodesInCurrentPath.contains(node))) {
ErrorInfo error(Tr::tr("Cycle in build graph detected."));
- for (const BuildGraphNode * const n : cycle(node))
+ const auto nodes = cycle(node);
+ for (const BuildGraphNode * const n : nodes)
error.append(n->toString());
throw error;
}
diff --git a/src/lib/corelib/buildgraph/cycledetector.h b/src/lib/corelib/buildgraph/cycledetector.h
index fffe6ed2f..5bfb44ef8 100644
--- a/src/lib/corelib/buildgraph/cycledetector.h
+++ b/src/lib/corelib/buildgraph/cycledetector.h
@@ -52,7 +52,7 @@ class BuildGraphNode;
class QBS_AUTOTEST_EXPORT CycleDetector : private BuildGraphVisitor
{
public:
- CycleDetector(const Logger &logger);
+ CycleDetector(Logger logger);
void visitProject(const TopLevelProjectConstPtr &project);
void visitProduct(const ResolvedProductConstPtr &product);
diff --git a/src/lib/corelib/buildgraph/depscanner.cpp b/src/lib/corelib/buildgraph/depscanner.cpp
index a2a39e4b2..0bf644286 100644
--- a/src/lib/corelib/buildgraph/depscanner.cpp
+++ b/src/lib/corelib/buildgraph/depscanner.cpp
@@ -154,9 +154,9 @@ bool PluginDependencyScanner::areModulePropertiesCompatible(const PropertyMapCon
return true;
}
-UserDependencyScanner::UserDependencyScanner(const ResolvedScannerConstPtr &scanner,
+UserDependencyScanner::UserDependencyScanner(ResolvedScannerConstPtr scanner,
ScriptEngine *engine)
- : m_scanner(scanner),
+ : m_scanner(std::move(scanner)),
m_engine(engine),
m_product(nullptr)
{
diff --git a/src/lib/corelib/buildgraph/depscanner.h b/src/lib/corelib/buildgraph/depscanner.h
index b8f8721aa..ffc0b83de 100644
--- a/src/lib/corelib/buildgraph/depscanner.h
+++ b/src/lib/corelib/buildgraph/depscanner.h
@@ -102,7 +102,7 @@ private:
class UserDependencyScanner : public DependencyScanner
{
public:
- UserDependencyScanner(const ResolvedScannerConstPtr &scanner, ScriptEngine *engine);
+ UserDependencyScanner(ResolvedScannerConstPtr scanner, ScriptEngine *engine);
private:
QStringList collectSearchPaths(Artifact *artifact) override;
diff --git a/src/lib/corelib/buildgraph/emptydirectoriesremover.cpp b/src/lib/corelib/buildgraph/emptydirectoriesremover.cpp
index b3cc6c840..ebbcf67a7 100644
--- a/src/lib/corelib/buildgraph/emptydirectoriesremover.cpp
+++ b/src/lib/corelib/buildgraph/emptydirectoriesremover.cpp
@@ -49,8 +49,8 @@ namespace qbs {
namespace Internal {
EmptyDirectoriesRemover::EmptyDirectoriesRemover(const TopLevelProject *project,
- const Logger &logger)
- : m_project(project), m_logger(logger)
+ Logger logger)
+ : m_project(project), m_logger(std::move(logger))
{
}
diff --git a/src/lib/corelib/buildgraph/emptydirectoriesremover.h b/src/lib/corelib/buildgraph/emptydirectoriesremover.h
index 6ec42c627..7d73fb819 100644
--- a/src/lib/corelib/buildgraph/emptydirectoriesremover.h
+++ b/src/lib/corelib/buildgraph/emptydirectoriesremover.h
@@ -53,7 +53,7 @@ class TopLevelProject;
class EmptyDirectoriesRemover
{
public:
- EmptyDirectoriesRemover(const TopLevelProject *project, const Logger &logger);
+ EmptyDirectoriesRemover(const TopLevelProject *project, Logger logger);
void removeEmptyParentDirectories(const QStringList &artifactFilePaths);
void removeEmptyParentDirectories(const ArtifactSet &artifacts);
diff --git a/src/lib/corelib/buildgraph/executor.cpp b/src/lib/corelib/buildgraph/executor.cpp
index 8f71e1ea3..aeb199a64 100644
--- a/src/lib/corelib/buildgraph/executor.cpp
+++ b/src/lib/corelib/buildgraph/executor.cpp
@@ -86,10 +86,10 @@ bool Executor::ComparePriority::operator() (const BuildGraphNode *x, const Build
}
-Executor::Executor(const Logger &logger, QObject *parent)
+Executor::Executor(Logger logger, QObject *parent)
: QObject(parent)
, m_productInstaller(nullptr)
- , m_logger(logger)
+ , m_logger(std::move(logger))
, m_progressObserver(nullptr)
, m_state(ExecutorIdle)
, m_cancelationTimer(new QTimer(this))
@@ -105,7 +105,8 @@ Executor::~Executor()
// jobs must be destroyed before deleting the shared scan result cache
for (ExecutorJob *job : qAsConst(m_availableJobs))
delete job;
- for (ExecutorJob *job : m_processingJobs.keys())
+ const auto processingJobs = m_processingJobs.keys();
+ for (ExecutorJob *job : processingJobs)
delete job;
delete m_inputArtifactScanContext;
delete m_productInstaller;
@@ -412,7 +413,8 @@ bool Executor::schedulingBlockedByJobLimit(const BuildGraphNode *node)
// running transformers.
if (jobLimitIsExceeded(transformer))
return true;
- for (const ExecutorJob * const runningJob : m_processingJobs.keys()) {
+ const auto runningJobs = m_processingJobs.keys();
+ for (const ExecutorJob * const runningJob : runningJobs) {
if (!runningJob->jobPools().contains(jobPool))
continue;
const Transformer * const runningTransformer = runningJob->transformer();
@@ -684,7 +686,8 @@ bool Executor::transformerHasMatchingInputFiles(const TransformerConstPtr &trans
if (transformer->inputs.empty())
return true;
for (const Artifact * const input : qAsConst(transformer->inputs)) {
- for (const QString &filePath : m_buildOptions.filesToConsider()) {
+ const auto files = m_buildOptions.filesToConsider();
+ for (const QString &filePath : files) {
if (input->filePath() == filePath
|| input->fileTags().intersects(m_tagsNeededForFilesToConsider)) {
return true;
@@ -725,7 +728,8 @@ void Executor::cancelJobs()
return;
qCDebug(lcExec) << "Canceling all jobs.";
setState(ExecutorCanceling);
- for (ExecutorJob *job : m_processingJobs.keys())
+ const auto jobs = m_processingJobs.keys();
+ for (ExecutorJob *job : jobs)
job->cancel();
}
@@ -734,7 +738,7 @@ void Executor::setupProgressObserver()
if (!m_progressObserver)
return;
int totalEffort = 1; // For the effort after the last rule application;
- for (const ResolvedProductConstPtr &product : m_productsToBuild) {
+ for (const ResolvedProductConstPtr &product : qAsConst(m_productsToBuild)) {
QBS_CHECK(product->buildData);
const auto filtered = filterByType<RuleNode>(product->buildData->allNodes());
totalEffort += std::distance(filtered.begin(), filtered.end());
@@ -746,7 +750,7 @@ void Executor::doSanityChecks()
{
QBS_CHECK(m_project);
QBS_CHECK(!m_productsToBuild.empty());
- for (const ResolvedProductConstPtr &product : m_productsToBuild) {
+ for (const ResolvedProductConstPtr &product : qAsConst(m_productsToBuild)) {
QBS_CHECK(product->buildData);
QBS_CHECK(product->topLevelProject() == m_project.get());
}
@@ -754,7 +758,8 @@ void Executor::doSanityChecks()
void Executor::handleError(const ErrorInfo &error)
{
- for (const ErrorItem &ei : error.items())
+ const auto items = error.items();
+ for (const ErrorItem &ei : items)
m_error.append(ei);
if (m_processingJobs.empty())
finish();
diff --git a/src/lib/corelib/buildgraph/executor.h b/src/lib/corelib/buildgraph/executor.h
index 003ba9a22..f938d90c4 100644
--- a/src/lib/corelib/buildgraph/executor.h
+++ b/src/lib/corelib/buildgraph/executor.h
@@ -77,7 +77,7 @@ class Executor : public QObject, private BuildGraphVisitor
public:
void build();
- Executor(const Logger &logger, QObject *parent = nullptr);
+ Executor(Logger logger, QObject *parent = nullptr);
~Executor();
void setProject(const TopLevelProjectPtr &project);
diff --git a/src/lib/corelib/buildgraph/inputartifactscanner.cpp b/src/lib/corelib/buildgraph/inputartifactscanner.cpp
index 68f3b744b..c8b2cb779 100644
--- a/src/lib/corelib/buildgraph/inputartifactscanner.cpp
+++ b/src/lib/corelib/buildgraph/inputartifactscanner.cpp
@@ -77,8 +77,9 @@ static void resolveDepencency(const RawScannedDependency &dependency,
FileDependency *fileDependencyArtifact = nullptr;
Artifact *dependencyInProduct = nullptr;
Artifact *dependencyInOtherProduct = nullptr;
- for (FileResourceBase *lookupResult : project->topLevelProject()
- ->buildData->lookupFiles(absDirPath, dependency.fileName())) {
+ const auto files = project->topLevelProject()
+ ->buildData->lookupFiles(absDirPath, dependency.fileName());
+ for (FileResourceBase *lookupResult : files) {
switch (lookupResult->fileType()) {
case FileResourceBase::FileTypeDependency:
fileDependencyArtifact = static_cast<FileDependency *>(lookupResult);
@@ -115,12 +116,12 @@ static void resolveDepencency(const RawScannedDependency &dependency,
}
InputArtifactScanner::InputArtifactScanner(Artifact *artifact, InputArtifactScannerContext *ctx,
- const Logger &logger)
+ Logger logger)
: m_artifact(artifact),
m_rawScanResults(artifact->product->topLevelProject()->buildData->rawScanResults),
m_context(ctx),
m_newDependencyAdded(false),
- m_logger(logger)
+ m_logger(std::move(logger))
{
}
@@ -274,7 +275,7 @@ void InputArtifactScanner::resolveScanResultDependencies(const Artifact *inputAr
}
// try include paths
- for (const QString &includePath : cache.searchPaths) {
+ for (const QString &includePath : qAsConst(cache.searchPaths)) {
resolveDepencency(dependency, inputArtifact->product.get(),
&resolvedDependency, includePath);
if (resolvedDependency.isValid())
diff --git a/src/lib/corelib/buildgraph/inputartifactscanner.h b/src/lib/corelib/buildgraph/inputartifactscanner.h
index 92d5f516f..ac51af579 100644
--- a/src/lib/corelib/buildgraph/inputartifactscanner.h
+++ b/src/lib/corelib/buildgraph/inputartifactscanner.h
@@ -118,7 +118,7 @@ class InputArtifactScanner
{
public:
InputArtifactScanner(Artifact *artifact, InputArtifactScannerContext *ctx,
- const Logger &logger);
+ Logger logger);
void scan();
bool newDependencyAdded() const { return m_newDependencyAdded; }
diff --git a/src/lib/corelib/buildgraph/jscommandexecutor.cpp b/src/lib/corelib/buildgraph/jscommandexecutor.cpp
index 4b7adb221..9972ce796 100644
--- a/src/lib/corelib/buildgraph/jscommandexecutor.cpp
+++ b/src/lib/corelib/buildgraph/jscommandexecutor.cpp
@@ -71,8 +71,8 @@ class JsCommandExecutorThreadObject : public QObject
{
Q_OBJECT
public:
- JsCommandExecutorThreadObject(const Logger &logger)
- : m_logger(logger)
+ JsCommandExecutorThreadObject(Logger logger)
+ : m_logger(std::move(logger))
, m_scriptEngine(nullptr)
{
}
diff --git a/src/lib/corelib/buildgraph/processcommandexecutor.cpp b/src/lib/corelib/buildgraph/processcommandexecutor.cpp
index 0818e1200..c34a734b4 100644
--- a/src/lib/corelib/buildgraph/processcommandexecutor.cpp
+++ b/src/lib/corelib/buildgraph/processcommandexecutor.cpp
@@ -89,7 +89,8 @@ static QProcessEnvironment mergeEnvironments(const QProcessEnvironment &baseEnv,
QStringLiteral("DYLD_LIBRARY_PATH"),
QStringLiteral("DYLD_FRAMEWORK_PATH"),
};
- for (const QString &key : additionalEnv.keys()) {
+ const auto keys = additionalEnv.keys();
+ for (const QString &key : keys) {
QString newValue = additionalEnv.value(key);
if (pathListVariables.contains(key, HostOsInfo::fileNameCaseSensitivity())) {
const QString &oldValue = baseEnv.value(key);
@@ -108,7 +109,8 @@ void ProcessCommandExecutor::doSetup()
transformer()->product()->buildEnvironment)
.findExecutable(cmd->program(), cmd->workingDir());
cmd->clearRelevantEnvValues();
- for (const QString &key : cmd->relevantEnvVars())
+ const auto keys = cmd->relevantEnvVars();
+ for (const QString &key : keys)
cmd->addRelevantEnvValue(key, transformer()->product()->buildEnvironment.value(key));
m_commandEnvironment = mergeEnvironments(m_buildEnvironment, cmd->environment());
diff --git a/src/lib/corelib/buildgraph/productinstaller.cpp b/src/lib/corelib/buildgraph/productinstaller.cpp
index cfd74c205..d4acc9ace 100644
--- a/src/lib/corelib/buildgraph/productinstaller.cpp
+++ b/src/lib/corelib/buildgraph/productinstaller.cpp
@@ -59,14 +59,14 @@
namespace qbs {
namespace Internal {
-ProductInstaller::ProductInstaller(const TopLevelProjectPtr &project,
- const std::vector<ResolvedProductPtr> &products, const InstallOptions &options,
- ProgressObserver *observer, const Logger &logger)
- : m_project(project),
- m_products(products),
- m_options(options),
+ProductInstaller::ProductInstaller(TopLevelProjectPtr project,
+ std::vector<ResolvedProductPtr> products, InstallOptions options,
+ ProgressObserver *observer, Logger logger)
+ : m_project(std::move(project)),
+ m_products(std::move(products)),
+ m_options(std::move(options)),
m_observer(observer),
- m_logger(logger)
+ m_logger(std::move(logger))
{
if (!m_options.installRoot().isEmpty()) {
QFileInfo installRootFileInfo(m_options.installRoot());
@@ -85,7 +85,7 @@ ProductInstaller::ProductInstaller(const TopLevelProjectPtr &project,
if (m_options.removeExistingInstallation())
throw ErrorInfo(Tr::tr("Refusing to remove sysroot."));
}
- initInstallRoot(project.get(), m_options);
+ initInstallRoot(m_project.get(), m_options);
}
void ProductInstaller::install()
diff --git a/src/lib/corelib/buildgraph/productinstaller.h b/src/lib/corelib/buildgraph/productinstaller.h
index 8379adb4c..09828cfe9 100644
--- a/src/lib/corelib/buildgraph/productinstaller.h
+++ b/src/lib/corelib/buildgraph/productinstaller.h
@@ -55,9 +55,9 @@ class ProgressObserver;
class ProductInstaller
{
public:
- ProductInstaller(const TopLevelProjectPtr &project,
- const std::vector<ResolvedProductPtr> &products,
- const InstallOptions &options, ProgressObserver *observer, const Logger &logger);
+ ProductInstaller(TopLevelProjectPtr project,
+ std::vector<ResolvedProductPtr> products,
+ InstallOptions options, ProgressObserver *observer, Logger logger);
void install();
static QString targetFilePath(const TopLevelProject *project, const QString &productSourceDir,
diff --git a/src/lib/corelib/buildgraph/projectbuilddata.cpp b/src/lib/corelib/buildgraph/projectbuilddata.cpp
index dcb10b45b..6a145dacc 100644
--- a/src/lib/corelib/buildgraph/projectbuilddata.cpp
+++ b/src/lib/corelib/buildgraph/projectbuilddata.cpp
@@ -266,7 +266,7 @@ void ProjectBuildData::store(PersistentPool &pool)
}
-BuildDataResolver::BuildDataResolver(const Logger &logger) : m_logger(logger)
+BuildDataResolver::BuildDataResolver(Logger logger) : m_logger(std::move(logger))
{
}
diff --git a/src/lib/corelib/buildgraph/projectbuilddata.h b/src/lib/corelib/buildgraph/projectbuilddata.h
index 785a86cbb..49101a716 100644
--- a/src/lib/corelib/buildgraph/projectbuilddata.h
+++ b/src/lib/corelib/buildgraph/projectbuilddata.h
@@ -110,7 +110,7 @@ private:
class BuildDataResolver
{
public:
- BuildDataResolver(const Logger &logger);
+ BuildDataResolver(Logger logger);
void resolveBuildData(const TopLevelProjectPtr &resolvedProject,
const RulesEvaluationContextPtr &evalContext);
void resolveProductBuildDataForExistingProject(const TopLevelProjectPtr &project,
diff --git a/src/lib/corelib/buildgraph/rulesapplicator.cpp b/src/lib/corelib/buildgraph/rulesapplicator.cpp
index 7ff64a9ef..406f92783 100644
--- a/src/lib/corelib/buildgraph/rulesapplicator.cpp
+++ b/src/lib/corelib/buildgraph/rulesapplicator.cpp
@@ -1,3 +1,5 @@
+#include <utility>
+
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
@@ -76,15 +78,15 @@ namespace qbs {
namespace Internal {
RulesApplicator::RulesApplicator(
- const ResolvedProductPtr &product,
- const std::unordered_map<QString, const ResolvedProduct *> &productsByName,
- const std::unordered_map<QString, const ResolvedProject *> &projectsByName,
- const Logger &logger)
- : m_product(product)
- , m_productsByName(productsByName)
- , m_projectsByName(projectsByName)
+ ResolvedProductPtr product,
+ std::unordered_map<QString, const ResolvedProduct *> productsByName,
+ std::unordered_map<QString, const ResolvedProject *> projectsByName,
+ Logger logger)
+ : m_product(std::move(product))
+ , m_productsByName(std::move(productsByName))
+ , m_projectsByName(std::move(projectsByName))
, m_mocScanner(nullptr)
- , m_logger(logger)
+ , m_logger(std::move(logger))
{
}
@@ -308,7 +310,7 @@ void RulesApplicator::doApply(const ArtifactSet &inputArtifacts, QScriptValue &p
|| m_oldTransformer->commands != m_transformer->commands
|| commandsNeedRerun(m_transformer.get(), m_product.get(), m_productsByName,
m_projectsByName)) {
- for (Artifact * const output : outputArtifacts) {
+ for (Artifact * const output : qAsConst(outputArtifacts)) {
output->clearTimestamp();
m_invalidatedArtifacts += output;
}
@@ -545,8 +547,8 @@ class ArtifactBindingsExtractor
{
struct Entry
{
- Entry(const QString &module, const QString &name, const QVariant &value)
- : module(module), name(name), value(value)
+ Entry(QString module, QString name, QVariant value)
+ : module(std::move(module)), name(std::move(name)), value(std::move(value))
{}
QString module;
@@ -558,9 +560,9 @@ class ArtifactBindingsExtractor
static Set<QString> getArtifactItemPropertyNames()
{
Set<QString> s;
- for (const PropertyDeclaration &pd :
- BuiltinDeclarations::instance().declarationsForType(
- ItemType::Artifact).properties()) {
+ const auto properties = BuiltinDeclarations::instance().declarationsForType(
+ ItemType::Artifact).properties();
+ for (const PropertyDeclaration &pd : properties) {
s.insert(pd.name());
}
s.insert(StringConstants::explicitlyDependsOnProperty());
diff --git a/src/lib/corelib/buildgraph/rulesapplicator.h b/src/lib/corelib/buildgraph/rulesapplicator.h
index f6fadb1ec..1160f3d09 100644
--- a/src/lib/corelib/buildgraph/rulesapplicator.h
+++ b/src/lib/corelib/buildgraph/rulesapplicator.h
@@ -62,10 +62,10 @@ class ScriptEngine;
class RulesApplicator
{
public:
- RulesApplicator(const ResolvedProductPtr &product,
- const std::unordered_map<QString, const ResolvedProduct *> &productsByName,
- const std::unordered_map<QString, const ResolvedProject *> &projectsByName,
- const Logger &logger);
+ RulesApplicator(ResolvedProductPtr product,
+ std::unordered_map<QString, const ResolvedProduct *> productsByName,
+ std::unordered_map<QString, const ResolvedProject *> projectsByName,
+ Logger logger);
~RulesApplicator();
const NodeSet &createdArtifacts() const { return m_createdArtifacts; }
diff --git a/src/lib/corelib/buildgraph/rulesevaluationcontext.cpp b/src/lib/corelib/buildgraph/rulesevaluationcontext.cpp
index c81e40c4f..6ae230329 100644
--- a/src/lib/corelib/buildgraph/rulesevaluationcontext.cpp
+++ b/src/lib/corelib/buildgraph/rulesevaluationcontext.cpp
@@ -53,8 +53,8 @@
namespace qbs {
namespace Internal {
-RulesEvaluationContext::RulesEvaluationContext(const Logger &logger)
- : m_logger(logger),
+RulesEvaluationContext::RulesEvaluationContext(Logger logger)
+ : m_logger(std::move(logger)),
m_engine(ScriptEngine::create(m_logger, EvalContext::RuleExecution)),
m_observer(nullptr),
m_initScopeCalls(0)
diff --git a/src/lib/corelib/buildgraph/rulesevaluationcontext.h b/src/lib/corelib/buildgraph/rulesevaluationcontext.h
index d3bf0e5bd..a5d81ce61 100644
--- a/src/lib/corelib/buildgraph/rulesevaluationcontext.h
+++ b/src/lib/corelib/buildgraph/rulesevaluationcontext.h
@@ -56,7 +56,7 @@ class ScriptEngine;
class RulesEvaluationContext
{
public:
- RulesEvaluationContext(const Logger &logger);
+ RulesEvaluationContext(Logger logger);
~RulesEvaluationContext();
class Scope
diff --git a/src/lib/corelib/buildgraph/transformer.cpp b/src/lib/corelib/buildgraph/transformer.cpp
index cf632463d..0a4fa17f9 100644
--- a/src/lib/corelib/buildgraph/transformer.cpp
+++ b/src/lib/corelib/buildgraph/transformer.cpp
@@ -242,7 +242,8 @@ AbstractCommandPtr Transformer::createCommandFromScriptValue(const QScriptValue
if (className == StringConstants::commandType()) {
auto procCmd = static_cast<ProcessCommand *>(cmdBase.get());
procCmd->clearRelevantEnvValues();
- for (const QString &key : procCmd->relevantEnvVars())
+ const auto envVars = procCmd->relevantEnvVars();
+ for (const QString &key : envVars)
procCmd->addRelevantEnvValue(key, product()->buildEnvironment.value(key));
}
return cmdBase;
diff --git a/src/lib/corelib/buildgraph/transformerchangetracking.cpp b/src/lib/corelib/buildgraph/transformerchangetracking.cpp
index 08875b742..4ee4394fd 100644
--- a/src/lib/corelib/buildgraph/transformerchangetracking.cpp
+++ b/src/lib/corelib/buildgraph/transformerchangetracking.cpp
@@ -338,7 +338,8 @@ bool TrafoChangeTracker::commandsNeedRerun() const
if (c->type() != AbstractCommand::ProcessCommandType)
continue;
const ProcessCommandPtr &processCmd = std::static_pointer_cast<ProcessCommand>(c);
- for (const QString &var : processCmd->relevantEnvVars()) {
+ const auto envVars = processCmd->relevantEnvVars();
+ for (const QString &var : envVars) {
const QString &oldValue = processCmd->relevantEnvValue(var);
const QString &newValue = m_product->buildEnvironment.value(var);
if (oldValue != newValue) {
diff --git a/src/lib/corelib/generators/generatableprojectiterator.cpp b/src/lib/corelib/generators/generatableprojectiterator.cpp
index c6d990f02..7267662e8 100644
--- a/src/lib/corelib/generators/generatableprojectiterator.cpp
+++ b/src/lib/corelib/generators/generatableprojectiterator.cpp
@@ -41,8 +41,8 @@
namespace qbs {
-GeneratableProjectIterator::GeneratableProjectIterator(const GeneratableProject &project)
- : project(project)
+GeneratableProjectIterator::GeneratableProjectIterator(GeneratableProject project)
+ : project(std::move(project))
{
}
diff --git a/src/lib/corelib/generators/generatableprojectiterator.h b/src/lib/corelib/generators/generatableprojectiterator.h
index 793627512..993144ce3 100644
--- a/src/lib/corelib/generators/generatableprojectiterator.h
+++ b/src/lib/corelib/generators/generatableprojectiterator.h
@@ -49,7 +49,7 @@ class QBS_EXPORT GeneratableProjectIterator {
GeneratableProject project;
public:
- GeneratableProjectIterator(const GeneratableProject &project);
+ GeneratableProjectIterator(GeneratableProject project);
void accept(IGeneratableProjectVisitor *visitor);
private:
diff --git a/src/lib/corelib/generators/generator.cpp b/src/lib/corelib/generators/generator.cpp
index 24da95e41..90bebdcaa 100644
--- a/src/lib/corelib/generators/generator.cpp
+++ b/src/lib/corelib/generators/generator.cpp
@@ -213,7 +213,7 @@ const GeneratableProject ProjectGenerator::project() const
{
QMap<QString, ProjectData> rootProjects;
GeneratableProject proj;
- for (const auto &project : projects()) {
+ for (const auto &project : qAsConst(d->projects)) {
const QString configurationName = _configurationName(project);
rootProjects.insert(configurationName, project.projectData());
proj.projects.insert(configurationName, project);
diff --git a/src/lib/corelib/jsextensions/environmentextension.cpp b/src/lib/corelib/jsextensions/environmentextension.cpp
index 22c4f069b..cf17c938b 100644
--- a/src/lib/corelib/jsextensions/environmentextension.cpp
+++ b/src/lib/corelib/jsextensions/environmentextension.cpp
@@ -127,7 +127,8 @@ QScriptValue EnvironmentExtension::js_currentEnv(QScriptContext *context, QScrip
if (!procenv)
procenv = &env;
QScriptValue envObject = engine->newObject();
- for (const QString &key : procenv->keys()) {
+ const auto keys = procenv->keys();
+ for (const QString &key : keys) {
const QString keyName = HostOsInfo::isWindowsHost() ? key.toUpper() : key;
envObject.setProperty(keyName, QScriptValue(procenv->value(key)));
}
diff --git a/src/lib/corelib/language/astimportshandler.cpp b/src/lib/corelib/language/astimportshandler.cpp
index 960af4cda..d634af7e4 100644
--- a/src/lib/corelib/language/astimportshandler.cpp
+++ b/src/lib/corelib/language/astimportshandler.cpp
@@ -69,7 +69,8 @@ ASTImportsHandler::ASTImportsHandler(ItemReaderVisitorState &visitorState, Logge
void ASTImportsHandler::handleImports(const QbsQmlJS::AST::UiImportList *uiImportList)
{
- for (const QString &searchPath : m_file->searchPaths())
+ const auto searchPaths = m_file->searchPaths();
+ for (const QString &searchPath : searchPaths)
collectPrototypes(searchPath + QStringLiteral("/imports"), QString());
// files in the same directory are available as prototypes
@@ -191,7 +192,8 @@ void ASTImportsHandler::handleImport(const QbsQmlJS::AST::UiImport *import, bool
? QStringLiteral("qbs/base") : importUri.join(QDir::separator());
bool found = m_typeNameToFile.contains(importUri);
if (!found) {
- for (const QString &searchPath : m_file->searchPaths()) {
+ const auto searchPaths = m_file->searchPaths();
+ for (const QString &searchPath : searchPaths) {
const QFileInfo fi(FileInfo::resolvePath(
FileInfo::resolvePath(searchPath,
StringConstants::importsDir()),
diff --git a/src/lib/corelib/language/builtindeclarations.cpp b/src/lib/corelib/language/builtindeclarations.cpp
index ee1b2d56e..68355df51 100644
--- a/src/lib/corelib/language/builtindeclarations.cpp
+++ b/src/lib/corelib/language/builtindeclarations.cpp
@@ -150,7 +150,8 @@ QStringList BuiltinDeclarations::argumentNamesForScriptFunction(ItemType itemTyp
const QString &scriptName) const
{
const ItemDeclaration itemDecl = declarationsForType(itemType);
- for (const PropertyDeclaration &propDecl : itemDecl.properties()) {
+ const auto properties = itemDecl.properties();
+ for (const PropertyDeclaration &propDecl : properties) {
if (propDecl.name() == scriptName)
return propDecl.functionArgumentNames();
}
diff --git a/src/lib/corelib/language/item.cpp b/src/lib/corelib/language/item.cpp
index 39dc39370..9f754bdd7 100644
--- a/src/lib/corelib/language/item.cpp
+++ b/src/lib/corelib/language/item.cpp
@@ -249,7 +249,8 @@ bool Item::isPresentModule() const
void Item::setupForBuiltinType(Logger &logger)
{
const BuiltinDeclarations &builtins = BuiltinDeclarations::instance();
- for (const PropertyDeclaration &pd : builtins.declarationsForType(type()).properties()) {
+ const auto properties = builtins.declarationsForType(type()).properties();
+ for (const PropertyDeclaration &pd : properties) {
m_propertyDeclarations.insert(pd.name(), pd);
const ValuePtr value = m_properties.value(pd.name());
if (!value) {
diff --git a/src/lib/corelib/language/itemreaderastvisitor.cpp b/src/lib/corelib/language/itemreaderastvisitor.cpp
index 2ea306138..901772d16 100644
--- a/src/lib/corelib/language/itemreaderastvisitor.cpp
+++ b/src/lib/corelib/language/itemreaderastvisitor.cpp
@@ -67,9 +67,9 @@ namespace qbs {
namespace Internal {
ItemReaderASTVisitor::ItemReaderASTVisitor(ItemReaderVisitorState &visitorState,
- const FileContextPtr &file, ItemPool *itemPool, Logger &logger)
+ FileContextPtr file, ItemPool *itemPool, Logger &logger)
: m_visitorState(visitorState)
- , m_file(file)
+ , m_file(std::move(file))
, m_itemPool(itemPool)
, m_logger(logger)
{
diff --git a/src/lib/corelib/language/itemreaderastvisitor.h b/src/lib/corelib/language/itemreaderastvisitor.h
index 4a0bedc91..963b78471 100644
--- a/src/lib/corelib/language/itemreaderastvisitor.h
+++ b/src/lib/corelib/language/itemreaderastvisitor.h
@@ -60,7 +60,7 @@ class ItemReaderVisitorState;
class ItemReaderASTVisitor : public QbsQmlJS::AST::Visitor
{
public:
- ItemReaderASTVisitor(ItemReaderVisitorState &visitorState, const FileContextPtr &file,
+ ItemReaderASTVisitor(ItemReaderVisitorState &visitorState, FileContextPtr file,
ItemPool *itemPool, Logger &logger);
void checkItemTypes() { doCheckItemTypes(rootItem()); }
diff --git a/src/lib/corelib/language/language.cpp b/src/lib/corelib/language/language.cpp
index 239eddf1f..9c9313e17 100644
--- a/src/lib/corelib/language/language.cpp
+++ b/src/lib/corelib/language/language.cpp
@@ -91,8 +91,8 @@ template<typename T> bool equals(const T *v1, const T *v2)
* \brief The \c FileTagger class maps 1:1 to the respective item in a qbs source file.
*/
-FileTagger::FileTagger(const QStringList &patterns, const FileTags &fileTags, int priority)
- : m_fileTags(fileTags), m_priority(priority)
+FileTagger::FileTagger(const QStringList &patterns, FileTags fileTags, int priority)
+ : m_fileTags(std::move(fileTags)), m_priority(priority)
{
setPatterns(patterns);
}
diff --git a/src/lib/corelib/language/language.h b/src/lib/corelib/language/language.h
index 82d9f94a2..945ec9806 100644
--- a/src/lib/corelib/language/language.h
+++ b/src/lib/corelib/language/language.h
@@ -98,7 +98,7 @@ public:
}
private:
- FileTagger(const QStringList &patterns, const FileTags &fileTags, int priority);
+ FileTagger(const QStringList &patterns, FileTags fileTags, int priority);
FileTagger() {}
void setPatterns(const QStringList &patterns);
diff --git a/src/lib/corelib/language/loader.cpp b/src/lib/corelib/language/loader.cpp
index e27ccca74..f248fbb1a 100644
--- a/src/lib/corelib/language/loader.cpp
+++ b/src/lib/corelib/language/loader.cpp
@@ -61,8 +61,8 @@
namespace qbs {
namespace Internal {
-Loader::Loader(ScriptEngine *engine, const Logger &logger)
- : m_logger(logger)
+Loader::Loader(ScriptEngine *engine, Logger logger)
+ : m_logger(std::move(logger))
, m_progressObserver(nullptr)
, m_engine(engine)
{
@@ -167,7 +167,7 @@ TopLevelProjectPtr Loader::loadProject(const SetupProjectParameters &_parameters
moduleLoader.setStoredProfiles(m_storedProfiles);
moduleLoader.setStoredModuleProviderInfo(m_storedModuleProviderInfo);
const ModuleLoaderResult loadResult = moduleLoader.load(parameters);
- ProjectResolver resolver(&evaluator, loadResult, parameters, m_logger);
+ ProjectResolver resolver(&evaluator, loadResult, std::move(parameters), m_logger);
resolver.setProgressObserver(m_progressObserver);
const TopLevelProjectPtr project = resolver.resolve();
project->lastStartResolveTime = resolveTime;
diff --git a/src/lib/corelib/language/loader.h b/src/lib/corelib/language/loader.h
index 48a0b6065..d172a74ed 100644
--- a/src/lib/corelib/language/loader.h
+++ b/src/lib/corelib/language/loader.h
@@ -57,7 +57,7 @@ class ScriptEngine;
class QBS_AUTOTEST_EXPORT Loader
{
public:
- Loader(ScriptEngine *engine, const Logger &logger);
+ Loader(ScriptEngine *engine, Logger logger);
void setProgressObserver(ProgressObserver *observer);
void setSearchPaths(const QStringList &searchPaths);
diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp
index d7fb9b75d..f8206031b 100644
--- a/src/lib/corelib/language/moduleloader.cpp
+++ b/src/lib/corelib/language/moduleloader.cpp
@@ -294,7 +294,8 @@ ModuleLoaderResult ModuleLoader::load(const SetupProjectParameters &parameters)
m_probesEncountered = m_probesRun = m_probesCachedCurrent = m_probesCachedOld = 0;
m_settings.reset(new Settings(parameters.settingsDirectory()));
- for (const QString &key : m_parameters.overriddenValues().keys()) {
+ const auto keys = m_parameters.overriddenValues().keys();
+ for (const QString &key : keys) {
static const QStringList prefixes({ StringConstants::projectPrefix(),
QStringLiteral("projects"),
QStringLiteral("products"), QStringLiteral("modules"),
@@ -695,7 +696,7 @@ void ModuleLoader::handleProject(ModuleLoaderResult *loadResult,
if (child->type() == ItemType::Product)
multiplexedProducts << multiplexProductItem(&dummyProductContext, child);
}
- for (Item * const additionalProductItem : multiplexedProducts)
+ for (Item * const additionalProductItem : qAsConst(multiplexedProducts))
Item::addChild(projectItem, additionalProductItem);
resolveProbes(&dummyProductContext, projectItem);
@@ -2653,7 +2654,7 @@ void ModuleLoader::resolveDependsItem(DependsContext *dependsContext, Item *pare
profiles.push_back(QString());
}
for (const QString &profile : qAsConst(profiles)) {
- for (const QString &multiplexId : multiplexConfigurationIds) {
+ for (const QString &multiplexId : qAsConst(multiplexConfigurationIds)) {
ModuleLoaderResult::ProductInfo::Dependency dependency;
dependency.name = moduleName.toString();
dependency.profile = profile;
@@ -3405,7 +3406,8 @@ void ModuleLoader::instantiateModule(ProductContext *productContext, Item *expor
// create ids from from the prototype in the instance
if (modulePrototype->file()->idScope()) {
- for (Item * const itemWithId : collectItemsWithId(modulePrototype)) {
+ const auto items = collectItemsWithId(modulePrototype);
+ for (Item * const itemWithId : items) {
Item *idProto = itemWithId;
Item *idInstance = prototypeInstanceMap.value(idProto);
QBS_ASSERT(idInstance, continue);
@@ -4044,7 +4046,8 @@ void ModuleLoader::handleProductError(const ErrorInfo &error,
}
}
}
- for (const ErrorItem &ei : error.items())
+ const auto errorItems = error.items();
+ for (const ErrorItem &ei : errorItems)
productContext->info.delayedError.append(ei.description(), ei.codeLocation());
productContext->project->result->productInfos.insert(productContext->item,
productContext->info);
diff --git a/src/lib/corelib/language/projectresolver.cpp b/src/lib/corelib/language/projectresolver.cpp
index 0bbf8d37a..50c177f43 100644
--- a/src/lib/corelib/language/projectresolver.cpp
+++ b/src/lib/corelib/language/projectresolver.cpp
@@ -114,14 +114,14 @@ struct ProjectResolver::ModuleContext
class CancelException { };
-ProjectResolver::ProjectResolver(Evaluator *evaluator, const ModuleLoaderResult &loadResult,
- const SetupProjectParameters &setupParameters, Logger &logger)
+ProjectResolver::ProjectResolver(Evaluator *evaluator, ModuleLoaderResult loadResult,
+ SetupProjectParameters setupParameters, Logger &logger)
: m_evaluator(evaluator)
, m_logger(logger)
, m_engine(m_evaluator->engine())
, m_progressObserver(nullptr)
- , m_setupParams(setupParameters)
- , m_loadResult(loadResult)
+ , m_setupParams(std::move(setupParameters))
+ , m_loadResult(std::move(loadResult))
{
QBS_CHECK(FileInfo::isAbsolute(m_setupParams.buildRoot()));
}
@@ -826,7 +826,7 @@ void ProjectResolver::resolveGroupFully(Item *item, ProjectResolver::ProjectCont
&m_productContext->sourceArtifactLocations, &fileError);
}
- for (const QString &fileName : files) {
+ for (const QString &fileName : qAsConst(files)) {
createSourceArtifact(m_productContext->product, fileName, group, false, filesLocation,
&m_productContext->sourceArtifactLocations, &fileError);
}
@@ -1022,7 +1022,8 @@ void ProjectResolver::setupExportedProperties(const Item *item, const QString &n
const ItemDeclaration itemDecl
= BuiltinDeclarations::instance().declarationsForType(item->type());
PropertyDeclaration propertyDecl;
- for (const PropertyDeclaration &decl : itemDecl.properties()) {
+ const auto itemProperties = itemDecl.properties();
+ for (const PropertyDeclaration &decl : itemProperties) {
if (decl.name() == it.key()) {
propertyDecl = decl;
exportedProperty.isBuiltin = true;
@@ -1109,7 +1110,8 @@ void ProjectResolver::resolveExport(Item *exportItem, ProjectContext *)
exportItem->file()->content());
}
}
- for (const QString &builtinImport: JsExtensions::extensionNames()) {
+ const auto builtInImports = JsExtensions::extensionNames();
+ for (const QString &builtinImport: builtInImports) {
if (usesImport(exportedModule, builtinImport))
exportedModule.importStatements << QStringLiteral("import qbs.") + builtinImport;
}
diff --git a/src/lib/corelib/language/projectresolver.h b/src/lib/corelib/language/projectresolver.h
index 0732b1c9b..c958127e4 100644
--- a/src/lib/corelib/language/projectresolver.h
+++ b/src/lib/corelib/language/projectresolver.h
@@ -67,8 +67,8 @@ class ScriptEngine;
class ProjectResolver
{
public:
- ProjectResolver(Evaluator *evaluator, const ModuleLoaderResult &loadResult,
- const SetupProjectParameters &setupParameters, Logger &logger);
+ ProjectResolver(Evaluator *evaluator, ModuleLoaderResult loadResult,
+ SetupProjectParameters setupParameters, Logger &logger);
~ProjectResolver();
void setProgressObserver(ProgressObserver *observer);
@@ -185,7 +185,7 @@ private:
mutable QHash<CodeLocation, ScriptFunctionPtr> m_scriptFunctionMap;
mutable QHash<std::pair<QStringRef, QStringList>, QString> m_scriptFunctions;
mutable QHash<QStringRef, QString> m_sourceCode;
- const SetupProjectParameters &m_setupParams;
+ const SetupProjectParameters m_setupParams;
ModuleLoaderResult m_loadResult;
Set<CodeLocation> m_groupLocationWarnings;
std::vector<std::pair<ResolvedProductPtr, Item *>> m_productExportInfo;
diff --git a/src/lib/corelib/language/scriptengine.cpp b/src/lib/corelib/language/scriptengine.cpp
index 1c6d0cb0d..205a3a4d9 100644
--- a/src/lib/corelib/language/scriptengine.cpp
+++ b/src/lib/corelib/language/scriptengine.cpp
@@ -817,9 +817,11 @@ void ScriptEngine::uninstallImportFunctions()
globalObject().setProperty(requireString(), QScriptValue());
}
-ScriptEngine::PropertyCacheKey::PropertyCacheKey(const QString &moduleName,
- const QString &propertyName, const PropertyMapConstPtr &propertyMap)
- : m_moduleName(moduleName), m_propertyName(propertyName), m_propertyMap(propertyMap)
+ScriptEngine::PropertyCacheKey::PropertyCacheKey(QString moduleName,
+ QString propertyName, PropertyMapConstPtr propertyMap)
+ : m_moduleName(std::move(moduleName))
+ , m_propertyName(std::move(propertyName))
+ , m_propertyMap(std::move(propertyMap))
{
}
diff --git a/src/lib/corelib/language/scriptengine.h b/src/lib/corelib/language/scriptengine.h
index 89863189a..57802b018 100644
--- a/src/lib/corelib/language/scriptengine.h
+++ b/src/lib/corelib/language/scriptengine.h
@@ -302,8 +302,8 @@ private:
class PropertyCacheKey
{
public:
- PropertyCacheKey(const QString &moduleName, const QString &propertyName,
- const PropertyMapConstPtr &propertyMap);
+ PropertyCacheKey(QString moduleName, QString propertyName,
+ PropertyMapConstPtr propertyMap);
private:
const QString m_moduleName;
const QString m_propertyName;
diff --git a/src/lib/corelib/language/value.cpp b/src/lib/corelib/language/value.cpp
index 16cbbeeff..656f38874 100644
--- a/src/lib/corelib/language/value.cpp
+++ b/src/lib/corelib/language/value.cpp
@@ -183,9 +183,9 @@ ValuePtr ItemValue::clone() const
return create(m_item->clone(), createdByPropertiesBlock());
}
-VariantValue::VariantValue(const QVariant &v)
+VariantValue::VariantValue(QVariant v)
: Value(VariantValueType, false)
- , m_value(v)
+ , m_value(std::move(v))
{
}
diff --git a/src/lib/corelib/language/value.h b/src/lib/corelib/language/value.h
index b9a869d73..0b1b3c222 100644
--- a/src/lib/corelib/language/value.h
+++ b/src/lib/corelib/language/value.h
@@ -207,7 +207,7 @@ private:
class VariantValue : public Value
{
- VariantValue(const QVariant &v);
+ VariantValue(QVariant v);
public:
static VariantValuePtr create(const QVariant &v = QVariant());
diff --git a/src/lib/corelib/logging/logger.cpp b/src/lib/corelib/logging/logger.cpp
index c3b11094d..71ca6a96c 100644
--- a/src/lib/corelib/logging/logger.cpp
+++ b/src/lib/corelib/logging/logger.cpp
@@ -165,7 +165,8 @@ LogWriter operator<<(LogWriter w, const QVariant &variant)
QString str = QLatin1String(variant.typeName()) + QLatin1Char('(');
if (variant.type() == QVariant::List) {
bool firstLoop = true;
- for (const QVariant &item : variant.toList()) {
+ const auto list = variant.toList();
+ for (const QVariant &item : list) {
str += item.toString();
if (firstLoop)
firstLoop = false;
diff --git a/src/lib/corelib/tools/applecodesignutils.cpp b/src/lib/corelib/tools/applecodesignutils.cpp
index 67c4f5238..feae266bf 100644
--- a/src/lib/corelib/tools/applecodesignutils.cpp
+++ b/src/lib/corelib/tools/applecodesignutils.cpp
@@ -80,7 +80,8 @@ QVariantMap certificateInfo(const QByteArray &data)
// Also potentially useful, but these are for signing pkgs which aren't used here
// 1.2.840.113635.100.4.9 - 3rd Party Mac Developer Installer: <name>
// 1.2.840.113635.100.4.13 - Developer ID Installer: <name>
- for (const auto &extension : cert.extensions()) {
+ const auto extensions = cert.extensions();
+ for (const auto &extension : extensions) {
if (extension.name() == QStringLiteral("extendedKeyUsage")) {
if (!extension.value().toStringList().contains(QStringLiteral("Code Signing")))
return {};
@@ -89,7 +90,8 @@ QVariantMap certificateInfo(const QByteArray &data)
const auto subjectInfo = [](const QSslCertificate &cert) {
QVariantMap map;
- for (const auto &attr : cert.subjectInfoAttributes())
+ const auto attributes = cert.subjectInfoAttributes();
+ for (const auto &attr : attributes)
map.insert(QString::fromUtf8(attr), cert.subjectInfo(attr).front());
return map;
};
diff --git a/src/lib/corelib/tools/buildgraphlocker.cpp b/src/lib/corelib/tools/buildgraphlocker.cpp
index c166c6e2d..28a58e3f4 100644
--- a/src/lib/corelib/tools/buildgraphlocker.cpp
+++ b/src/lib/corelib/tools/buildgraphlocker.cpp
@@ -55,8 +55,8 @@
namespace qbs {
namespace Internal {
-DirectoryManager::DirectoryManager(const QString &dir, const Logger &logger)
- : m_dir(dir), m_logger(logger)
+DirectoryManager::DirectoryManager(QString dir, Logger logger)
+ : m_dir(std::move(dir)), m_logger(std::move(logger))
{
rememberCreatedDirectories();
}
diff --git a/src/lib/corelib/tools/buildgraphlocker.h b/src/lib/corelib/tools/buildgraphlocker.h
index 17d452130..f85fc0768 100644
--- a/src/lib/corelib/tools/buildgraphlocker.h
+++ b/src/lib/corelib/tools/buildgraphlocker.h
@@ -55,7 +55,7 @@ class ProgressObserver;
class DirectoryManager
{
public:
- DirectoryManager(const QString &dir, const Logger &logger);
+ DirectoryManager(QString dir, Logger logger);
~DirectoryManager();
QString dir() const { return m_dir; }
diff --git a/src/lib/corelib/tools/executablefinder.cpp b/src/lib/corelib/tools/executablefinder.cpp
index 7c5d1210e..4342c82f0 100644
--- a/src/lib/corelib/tools/executablefinder.cpp
+++ b/src/lib/corelib/tools/executablefinder.cpp
@@ -64,10 +64,9 @@ static QStringList populateExecutableSuffixes()
QStringList ExecutableFinder::m_executableSuffixes = populateExecutableSuffixes();
-ExecutableFinder::ExecutableFinder(const ResolvedProductPtr &m_product,
- const QProcessEnvironment &env)
- : m_product(m_product)
- , m_environment(env)
+ExecutableFinder::ExecutableFinder(ResolvedProductPtr product, QProcessEnvironment env)
+ : m_product(std::move(product))
+ , m_environment(std::move(env))
{
}
diff --git a/src/lib/corelib/tools/executablefinder.h b/src/lib/corelib/tools/executablefinder.h
index cb965b5d1..9467756fc 100644
--- a/src/lib/corelib/tools/executablefinder.h
+++ b/src/lib/corelib/tools/executablefinder.h
@@ -53,7 +53,7 @@ namespace Internal {
class ExecutableFinder
{
public:
- ExecutableFinder(const ResolvedProductPtr &product, const QProcessEnvironment &env);
+ ExecutableFinder(ResolvedProductPtr product, QProcessEnvironment env);
QString findExecutable(const QString &path, const QString &workingDirPath);
@@ -68,7 +68,7 @@ private:
void cacheFilePath(const QString &filePaht, const QString &filePath) const;
ResolvedProductPtr m_product;
- const QProcessEnvironment &m_environment;
+ const QProcessEnvironment m_environment;
};
} // namespace Internal
diff --git a/src/lib/corelib/tools/fileinfo.cpp b/src/lib/corelib/tools/fileinfo.cpp
index cec6b2660..8b0eedc27 100644
--- a/src/lib/corelib/tools/fileinfo.cpp
+++ b/src/lib/corelib/tools/fileinfo.cpp
@@ -404,8 +404,9 @@ bool removeFileRecursion(const QFileInfo &f, QString *errorMessage)
const QDir dir(f.absoluteFilePath());
// QDir::System is needed for broken symlinks.
- for (const QFileInfo &fi : dir.entryInfoList(QDir::AllEntries | QDir::NoDotAndDotDot
- | QDir::Hidden | QDir::System))
+ const auto fileInfos = dir.entryInfoList(QDir::AllEntries | QDir::NoDotAndDotDot
+ | QDir::Hidden | QDir::System);
+ for (const QFileInfo &fi : fileInfos)
removeFileRecursion(fi, errorMessage);
QDir parent = f.absoluteDir();
if (!parent.rmdir(f.fileName())) {
diff --git a/src/lib/corelib/tools/filesaver.cpp b/src/lib/corelib/tools/filesaver.cpp
index 0fd652657..5a0a68c1f 100644
--- a/src/lib/corelib/tools/filesaver.cpp
+++ b/src/lib/corelib/tools/filesaver.cpp
@@ -48,8 +48,8 @@
namespace qbs {
namespace Internal {
-FileSaver::FileSaver(const std::string &filePath, bool overwriteIfUnchanged)
- : m_filePath(filePath), m_overwriteIfUnchanged(overwriteIfUnchanged)
+FileSaver::FileSaver(std::string filePath, bool overwriteIfUnchanged)
+ : m_filePath(std::move(filePath)), m_overwriteIfUnchanged(overwriteIfUnchanged)
{
}
diff --git a/src/lib/corelib/tools/filesaver.h b/src/lib/corelib/tools/filesaver.h
index 275ad0f01..8b4c01669 100644
--- a/src/lib/corelib/tools/filesaver.h
+++ b/src/lib/corelib/tools/filesaver.h
@@ -55,7 +55,7 @@ namespace Internal {
*/
class QBS_EXPORT FileSaver {
public:
- FileSaver(const std::string &filePath, bool overwriteIfUnchanged = false);
+ FileSaver(std::string filePath, bool overwriteIfUnchanged = false);
std::ostream *device();
bool open();
diff --git a/src/lib/corelib/tools/jsliterals.cpp b/src/lib/corelib/tools/jsliterals.cpp
index bf9720493..74328006c 100644
--- a/src/lib/corelib/tools/jsliterals.cpp
+++ b/src/lib/corelib/tools/jsliterals.cpp
@@ -77,7 +77,8 @@ QString toJSLiteral(const QVariant &val)
return Internal::StringConstants::undefinedValue();
if (val.type() == QVariant::List || val.type() == QVariant::StringList) {
QString res;
- for (const QVariant &child : val.toList()) {
+ const auto list = val.toList();
+ for (const QVariant &child : list) {
if (res.length()) res.append(QLatin1String(", "));
res.append(toJSLiteral(child));
}
diff --git a/src/lib/corelib/tools/msvcinfo.cpp b/src/lib/corelib/tools/msvcinfo.cpp
index f51ba8ba2..c1312c8c9 100644
--- a/src/lib/corelib/tools/msvcinfo.cpp
+++ b/src/lib/corelib/tools/msvcinfo.cpp
@@ -70,7 +70,8 @@ public:
TemporaryEnvChanger(const QProcessEnvironment &envChanges) : m_locker(envMutex)
{
QProcessEnvironment currentEnv = QProcessEnvironment::systemEnvironment();
- for (const QString &key : envChanges.keys()) {
+ const auto keys = envChanges.keys();
+ for (const QString &key : keys) {
m_changesToRestore.insert(key, currentEnv.value(key));
qputenv(qPrintable(key), qPrintable(envChanges.value(key)));
}
@@ -78,7 +79,8 @@ public:
~TemporaryEnvChanger()
{
- for (const QString &key : m_changesToRestore.keys())
+ const auto keys = m_changesToRestore.keys();
+ for (const QString &key : keys)
qputenv(qPrintable(key), qPrintable(m_changesToRestore.value(key)));
}
@@ -119,7 +121,7 @@ static QByteArray runProcess(const QString &exeFilePath, const QStringList &args
class DummyFile {
public:
- DummyFile(const QString &fp) : filePath(fp) { }
+ DummyFile(QString fp) : filePath(std::move(fp)) { }
~DummyFile() { QFile::remove(filePath); }
const QString filePath;
};
diff --git a/src/lib/corelib/tools/preferences.cpp b/src/lib/corelib/tools/preferences.cpp
index ca3fe8378..4db271758 100644
--- a/src/lib/corelib/tools/preferences.cpp
+++ b/src/lib/corelib/tools/preferences.cpp
@@ -1,3 +1,5 @@
+#include <utility>
+
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
@@ -51,13 +53,13 @@ namespace qbs {
* If a non-empty \c profileName is given, the profile's preferences take precedence over global
* ones. Otherwise, the global preferences are used.
*/
-Preferences::Preferences(Settings *settings, const QString &profileName)
- : m_settings(settings), m_profile(profileName)
+Preferences::Preferences(Settings *settings, QString profileName)
+ : m_settings(settings), m_profile(std::move(profileName))
{
}
-Preferences::Preferences(Settings *settings, const QVariantMap &profileContents)
- : m_settings(settings), m_profileContents(profileContents)
+Preferences::Preferences(Settings *settings, QVariantMap profileContents)
+ : m_settings(settings), m_profileContents(std::move(profileContents))
{
}
@@ -131,14 +133,16 @@ JobLimits Preferences::jobLimits() const
{
const QString prefix = QStringLiteral("preferences.jobLimit");
JobLimits limits;
- for (const QString &key : m_settings->allKeysWithPrefix(prefix, Settings::allScopes())) {
+ const auto keys = m_settings->allKeysWithPrefix(prefix, Settings::allScopes());
+ for (const QString &key : keys) {
limits.setJobLimit(key, m_settings->value(prefix + QLatin1Char('.') + key,
Settings::allScopes()).toInt());
}
const QString fullPrefix = prefix + QLatin1Char('.');
if (!m_profile.isEmpty()) {
Profile p(m_profile, m_settings, m_profileContents);
- for (const QString &key : p.allKeys(Profile::KeySelectionRecursive)) {
+ const auto keys = p.allKeys(Profile::KeySelectionRecursive);
+ for (const QString &key : keys) {
if (!key.startsWith(fullPrefix))
continue;
const QString jobPool = key.mid(fullPrefix.size());
diff --git a/src/lib/corelib/tools/preferences.h b/src/lib/corelib/tools/preferences.h
index 661b39d7f..2824ebf2c 100644
--- a/src/lib/corelib/tools/preferences.h
+++ b/src/lib/corelib/tools/preferences.h
@@ -54,8 +54,8 @@ class Settings;
class QBS_EXPORT Preferences
{
public:
- explicit Preferences(Settings *settings, const QString &profileName = QString());
- Preferences(Settings *settings, const QVariantMap &profileContents);
+ explicit Preferences(Settings *settings, QString profileName = QString());
+ Preferences(Settings *settings, QVariantMap profileContents);
bool useColoredOutput() const;
int jobs() const;
diff --git a/src/lib/corelib/tools/settingscreator.cpp b/src/lib/corelib/tools/settingscreator.cpp
index 8479a67dc..eaaf2802c 100644
--- a/src/lib/corelib/tools/settingscreator.cpp
+++ b/src/lib/corelib/tools/settingscreator.cpp
@@ -1,3 +1,5 @@
+#include <utility>
+
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
@@ -56,8 +58,9 @@ static QSettings::Format format()
}
-SettingsCreator::SettingsCreator(const QString &baseDir)
- : m_settingsBaseDir(baseDir), m_qbsVersion(Version::fromString(QLatin1String(QBS_VERSION)))
+SettingsCreator::SettingsCreator(QString baseDir)
+ : m_settingsBaseDir(std::move(baseDir))
+ , m_qbsVersion(Version::fromString(QLatin1String(QBS_VERSION)))
{
}
@@ -102,7 +105,8 @@ void SettingsCreator::migrate()
// that's only preferences.qbsSearchPaths as written by libqtprofilesetup, but we don't want
// to hardcode that here.
m_settings.reset(new QSettings(m_newSettingsFilePath, format()));
- for (const QString &key : m_settings->allKeys()) {
+ const auto allKeys = m_settings->allKeys();
+ for (const QString &key : allKeys) {
QVariant v = m_settings->value(key);
if (v.type() == QVariant::String) {
QString s = v.toString();
diff --git a/src/lib/corelib/tools/settingscreator.h b/src/lib/corelib/tools/settingscreator.h
index 6bc2a5cb7..39da80a7f 100644
--- a/src/lib/corelib/tools/settingscreator.h
+++ b/src/lib/corelib/tools/settingscreator.h
@@ -56,7 +56,7 @@ namespace Internal {
class SettingsCreator
{
public:
- SettingsCreator(const QString &baseDir);
+ SettingsCreator(QString baseDir);
QSettings *getQSettings();
diff --git a/src/lib/corelib/tools/settingsmodel.cpp b/src/lib/corelib/tools/settingsmodel.cpp
index 4a90773eb..d67f1da5c 100644
--- a/src/lib/corelib/tools/settingsmodel.cpp
+++ b/src/lib/corelib/tools/settingsmodel.cpp
@@ -327,7 +327,8 @@ void SettingsModel::SettingsModelPrivate::readSettings()
{
qDeleteAll(rootNode.children);
rootNode.children.clear();
- for (const QString &topLevelKey : settings->directChildren(QString(), scope()))
+ const auto topLevelKeys = settings->directChildren(QString(), scope());
+ for (const QString &topLevelKey : topLevelKeys)
addNodeFromSettings(&rootNode, topLevelKey);
for (QVariantMap::ConstIterator it = additionalProperties.constBegin();
it != additionalProperties.constEnd(); ++it) {
@@ -353,7 +354,8 @@ void SettingsModel::SettingsModelPrivate::addNodeFromSettings(Node *parentNode,
= fullyQualifiedName.mid(fullyQualifiedName.lastIndexOf(QLatin1Char('.')) + 1);
Node * const node = createNode(parentNode, nodeName);
node->value = settingsValueToRepresentation(settings->value(fullyQualifiedName, scope()));
- for (const QString &childKey : settings->directChildren(fullyQualifiedName, scope()))
+ const auto childKeys = settings->directChildren(fullyQualifiedName, scope());
+ for (const QString &childKey : childKeys)
addNodeFromSettings(node, fullyQualifiedName + QLatin1Char('.') + childKey);
dirty = true;
}
diff --git a/src/lib/corelib/tools/setupprojectparameters.cpp b/src/lib/corelib/tools/setupprojectparameters.cpp
index 6b13570d7..6d817c8f3 100644
--- a/src/lib/corelib/tools/setupprojectparameters.cpp
+++ b/src/lib/corelib/tools/setupprojectparameters.cpp
@@ -109,6 +109,8 @@ SetupProjectParameters::SetupProjectParameters(const SetupProjectParameters &oth
{
}
+SetupProjectParameters::SetupProjectParameters(SetupProjectParameters &&other) Q_DECL_NOEXCEPT = default;
+
SetupProjectParameters::~SetupProjectParameters()
{
}
@@ -119,6 +121,8 @@ SetupProjectParameters &SetupProjectParameters::operator=(const SetupProjectPara
return *this;
}
+SetupProjectParameters &SetupProjectParameters::operator=(SetupProjectParameters &&other) Q_DECL_NOEXCEPT = default;
+
/*!
* \brief Returns the name of the top-level profile for building the project.
*/
diff --git a/src/lib/corelib/tools/setupprojectparameters.h b/src/lib/corelib/tools/setupprojectparameters.h
index c462ca212..cf3b200cb 100644
--- a/src/lib/corelib/tools/setupprojectparameters.h
+++ b/src/lib/corelib/tools/setupprojectparameters.h
@@ -65,9 +65,11 @@ class QBS_EXPORT SetupProjectParameters
public:
SetupProjectParameters();
SetupProjectParameters(const SetupProjectParameters &other);
+ SetupProjectParameters(SetupProjectParameters &&other) Q_DECL_NOEXCEPT;
~SetupProjectParameters();
SetupProjectParameters &operator=(const SetupProjectParameters &other);
+ SetupProjectParameters &operator=(SetupProjectParameters &&other) Q_DECL_NOEXCEPT;
QString topLevelProfile() const;
void setTopLevelProfile(const QString &profile);
diff --git a/src/lib/corelib/tools/vsenvironmentdetector.cpp b/src/lib/corelib/tools/vsenvironmentdetector.cpp
index b91a8ff74..869423950 100644
--- a/src/lib/corelib/tools/vsenvironmentdetector.cpp
+++ b/src/lib/corelib/tools/vsenvironmentdetector.cpp
@@ -201,9 +201,12 @@ static QString vcArchitecture(const MSVC *msvc)
if (msvc->architecture == StringConstants::x86_64Arch())
vcArch = StringConstants::amd64Arch();
- for (const QString &hostPrefix :
- QStringList({StringConstants::x86Arch(), QStringLiteral("amd64_"),
- QStringLiteral("x86_")})) {
+ const QString hostPrefixes[] = {
+ StringConstants::x86Arch(),
+ QStringLiteral("amd64_"),
+ QStringLiteral("x86_")
+ };
+ for (const QString &hostPrefix : hostPrefixes) {
if (QFile::exists(msvc->clPathForArchitecture(hostPrefix + vcArch))) {
vcArch.prepend(hostPrefix);
break;
@@ -237,7 +240,8 @@ void VsEnvironmentDetector::parseBatOutput(const QByteArray &output, std::vector
{
QString arch;
QProcessEnvironment *targetEnv = nullptr;
- for (QByteArray line : output.split('\n')) {
+ const auto lines = output.split('\n');
+ for (QByteArray line : lines) {
line = line.trimmed();
if (line.isEmpty())
continue;
diff --git a/src/libexec/qbs_processlauncher/launchersockethandler.cpp b/src/libexec/qbs_processlauncher/launchersockethandler.cpp
index a6f7843ec..53bd81a9a 100644
--- a/src/libexec/qbs_processlauncher/launchersockethandler.cpp
+++ b/src/libexec/qbs_processlauncher/launchersockethandler.cpp
@@ -97,9 +97,9 @@ private:
enum class StopState { Inactive, Terminating, Killing } m_stopState = StopState::Inactive;
};
-LauncherSocketHandler::LauncherSocketHandler(const QString &serverPath, QObject *parent)
+LauncherSocketHandler::LauncherSocketHandler(QString serverPath, QObject *parent)
: QObject(parent),
- m_serverPath(serverPath),
+ m_serverPath(std::move(serverPath)),
m_socket(new QLocalSocket(this))
{
m_packetParser.setDevice(m_socket);
diff --git a/src/libexec/qbs_processlauncher/launchersockethandler.h b/src/libexec/qbs_processlauncher/launchersockethandler.h
index e96c02e13..5f3e04979 100644
--- a/src/libexec/qbs_processlauncher/launchersockethandler.h
+++ b/src/libexec/qbs_processlauncher/launchersockethandler.h
@@ -58,7 +58,7 @@ class LauncherSocketHandler : public QObject
{
Q_OBJECT
public:
- explicit LauncherSocketHandler(const QString &socketPath, QObject *parent = nullptr);
+ explicit LauncherSocketHandler(QString socketPath, QObject *parent = nullptr);
~LauncherSocketHandler();
void start();
diff --git a/src/plugins/generator/clangcompilationdb/clangcompilationdbgenerator.cpp b/src/plugins/generator/clangcompilationdb/clangcompilationdbgenerator.cpp
index 0f94f2b2b..bc13ec480 100644
--- a/src/plugins/generator/clangcompilationdb/clangcompilationdbgenerator.cpp
+++ b/src/plugins/generator/clangcompilationdb/clangcompilationdbgenerator.cpp
@@ -69,14 +69,18 @@ QString ClangCompilationDatabaseGenerator::generatorName() const
void ClangCompilationDatabaseGenerator::generate()
{
- for (const Project &theProject : project().projects.values()) {
+ const auto projects = project().projects.values();
+ for (const Project &theProject : projects) {
QJsonArray database;
const ProjectData projectData = theProject.projectData();
const QString buildDir = projectData.buildDirectory();
- for (const ProductData &productData : projectData.allProducts()) {
- for (const GroupData &groupData : productData.groups()) {
- for (const ArtifactData &sourceArtifact : groupData.allSourceArtifacts()) {
+ const auto products = projectData.allProducts();
+ for (const ProductData &productData : products) {
+ const auto groups = productData.groups();
+ for (const GroupData &groupData : groups) {
+ const auto sourceArtifacts = groupData.allSourceArtifacts();
+ for (const ArtifactData &sourceArtifact : sourceArtifacts) {
if (!hasValidInputFileTag(sourceArtifact.fileTags()))
continue;
diff --git a/src/plugins/generator/makefilegenerator/makefilegenerator.cpp b/src/plugins/generator/makefilegenerator/makefilegenerator.cpp
index f186b5244..24aff5a33 100644
--- a/src/plugins/generator/makefilegenerator/makefilegenerator.cpp
+++ b/src/plugins/generator/makefilegenerator/makefilegenerator.cpp
@@ -156,7 +156,8 @@ static QString removeCommand()
void qbs::MakefileGenerator::generate()
{
- for (const Project &theProject : project().projects.values()) {
+ const auto projects = project().projects.values();
+ for (const Project &theProject : projects) {
const QString makefileFilePath = theProject.projectData().buildDirectory()
+ QLatin1String("/Makefile");
QFile makefile(makefileFilePath);
@@ -241,16 +242,19 @@ void qbs::MakefileGenerator::generate()
allDefaultTargets.push_back(productTarget);
allTargets.push_back(productTarget);
stream << productTarget << ':';
- for (const ArtifactData &ta : productData.targetArtifacts())
+ const auto targetArtifacts = productData.targetArtifacts();
+ for (const ArtifactData &ta : targetArtifacts)
stream << ' ' << transformedOutputFilePath(ta);
stream << '\n';
for (const TransformerData &transformerData : productTransformerData) {
stream << transformedOutputFilePath(transformerData.outputs().constFirst()) << ":";
- for (const ArtifactData &input : transformerData.inputs())
+ const auto inputs = transformerData.inputs();
+ for (const ArtifactData &input : inputs)
stream << ' ' << transformedArtifactFilePath(input);
stream << '\n';
Set<QString> createdDirs;
- for (const ArtifactData &output : transformerData.outputs()) {
+ const auto outputs = transformerData.outputs();
+ for (const ArtifactData &output : outputs) {
const QString outputDir = QFileInfo(output.filePath()).path();
if (createdDirs.insert(outputDir).second)
stream << "\t" << mkdirCmdLine(QDir::toNativeSeparators(
@@ -258,7 +262,8 @@ void qbs::MakefileGenerator::generate()
<< '\n';
}
bool processCommandEncountered = false;
- for (const RuleCommand &command : transformerData.commands()) {
+ const auto commands = transformerData.commands();
+ for (const RuleCommand &command : commands) {
if (command.type() == RuleCommand::JavaScriptCommandType) {
jsCommandsEncountered = true;
continue;
@@ -268,7 +273,8 @@ void qbs::MakefileGenerator::generate()
quote(bruteForcePathReplace(command.executable(), srcDir,
buildDir, installRoot)));
// TODO: Optionally use environment?
- for (const QString &arg : command.arguments()) {
+ const auto args = command.arguments();
+ for (const QString &arg : args) {
stream << ' '
<< quote(bruteForcePathReplace(arg, srcDir, buildDir, installRoot));
}
@@ -279,13 +285,15 @@ void qbs::MakefileGenerator::generate()
<< transformedOutputFilePath(transformerData.outputs().at(i-1)) << '\n';
}
if (!processCommandEncountered && builtByDefault) {
- for (const ArtifactData &output : transformerData.outputs())
+ const auto outputs = transformerData.outputs();
+ for (const ArtifactData &output : outputs)
filesCreatedByJsCommands.push_back(output.filePath());
}
}
stream << "install-" << productTarget << ": " << productTarget << '\n';
Set<QString> createdDirs;
- for (const ArtifactData &artifact : productData.installableArtifacts()) {
+ const auto installableArtifacts = productData.installableArtifacts();
+ for (const ArtifactData &artifact : installableArtifacts) {
const QString &outputDir = artifact.installData().localInstallDir();
if (outputDir.contains(QLatin1Char(' '))) {
logger().qbsWarning() << Tr::tr("Skipping installation of '%1', because "
@@ -311,7 +319,8 @@ void qbs::MakefileGenerator::generate()
<< transformedInputFilePath << ' ' << transformedOutputDir << '\n';
}
stream << "clean-" << productTarget << ":\n";
- for (const ArtifactData &artifact : productData.generatedArtifacts()) {
+ const auto generatedArtifacts = productData.generatedArtifacts();
+ for (const ArtifactData &artifact : generatedArtifacts) {
const QFileInfo fileInfo(artifact.filePath());
const QString transformedFilePath = QDir::toNativeSeparators(
prefixifiedBuildDirPath(fileInfo.path())
@@ -324,15 +333,15 @@ void qbs::MakefileGenerator::generate()
}
stream << "all:";
- for (const QString &target : allDefaultTargets)
+ for (const QString &target : qAsConst(allDefaultTargets))
stream << ' ' << target;
stream << '\n';
stream << "install:";
- for (const QString &target : allDefaultTargets)
+ for (const QString &target : qAsConst(allDefaultTargets))
stream << ' ' << "install-" << target;
stream << '\n';
stream << "clean:";
- for (const QString &target : allTargets)
+ for (const QString &target : qAsConst(allTargets))
stream << ' ' << "clean-" << target;
stream << '\n';
if (!filesCreatedByJsCommands.empty()) {
diff --git a/src/plugins/generator/visualstudio/io/visualstudiosolutionwriter.cpp b/src/plugins/generator/visualstudio/io/visualstudiosolutionwriter.cpp
index 4c0495316..07e8d81b8 100644
--- a/src/plugins/generator/visualstudio/io/visualstudiosolutionwriter.cpp
+++ b/src/plugins/generator/visualstudio/io/visualstudiosolutionwriter.cpp
@@ -87,7 +87,8 @@ bool VisualStudioSolutionWriter::write(const VisualStudioSolution *solution)
<< solution->versionInfo().version().majorVersion()
<< u8"\n";
- for (const auto &project : solution->fileProjects()) {
+ const auto fileProjects = solution->fileProjects();
+ for (const auto &project : fileProjects) {
auto projectFilePath = project->filePath().toStdString();
// Try to make the project file path relative to the
@@ -126,7 +127,8 @@ bool VisualStudioSolutionWriter::write(const VisualStudioSolution *solution)
out << u8"EndProject\n";
}
- for (const auto &project : solution->folderProjects()) {
+ const auto folderProjects = solution->folderProjects();
+ for (const auto &project : folderProjects) {
out << u8"Project(\""
<< project->projectTypeGuid().toString().toStdString()
<< u8"\") = \""
@@ -142,7 +144,8 @@ bool VisualStudioSolutionWriter::write(const VisualStudioSolution *solution)
out << u8"Global\n";
- for (const auto &globalSection : solution->globalSections()) {
+ const auto globalSections = solution->globalSections();
+ for (const auto &globalSection : globalSections) {
out << u8"\tGlobalSection("
<< globalSection->name().toStdString()
<< u8") = "
diff --git a/src/plugins/generator/visualstudio/msbuildfiltersproject.cpp b/src/plugins/generator/visualstudio/msbuildfiltersproject.cpp
index 7d633ca44..54a1dfb5e 100644
--- a/src/plugins/generator/visualstudio/msbuildfiltersproject.cpp
+++ b/src/plugins/generator/visualstudio/msbuildfiltersproject.cpp
@@ -110,8 +110,10 @@ MSBuildFiltersProject::MSBuildFiltersProject(const GeneratableProductData &produ
}
Internal::Set<QString> allFiles;
- for (const auto &productData : product.data.values()) {
- for (const auto &groupData : productData.groups())
+ const auto productDatas = product.data.values();
+ for (const auto &productData : productDatas) {
+ const auto groups = productData.groups();
+ for (const auto &groupData : groups)
if (groupData.isEnabled())
allFiles.unite(Internal::Set<QString>::fromList(groupData.allFilePaths()));
}
diff --git a/src/plugins/generator/visualstudio/msbuildqbsproductproject.cpp b/src/plugins/generator/visualstudio/msbuildqbsproductproject.cpp
index ed41dfb33..2d679ceb1 100644
--- a/src/plugins/generator/visualstudio/msbuildqbsproductproject.cpp
+++ b/src/plugins/generator/visualstudio/msbuildqbsproductproject.cpp
@@ -176,7 +176,8 @@ void MSBuildQbsProductProject::addConfiguration(const GeneratableProject &projec
.runEnvironment();
if (!env.isEmpty()) {
const auto systemEnv = QProcessEnvironment::systemEnvironment();
- for (const auto &key : systemEnv.keys()) {
+ const auto keys = systemEnv.keys();
+ for (const auto &key : keys) {
if (!env.contains(key))
continue;
@@ -364,8 +365,10 @@ void MSBuildQbsProductProject::addFiles(const GeneratableProject &project,
QMapIterator<QString, qbs::ProductData> productDataIt(product.data);
while (productDataIt.hasNext()) {
productDataIt.next();
- for (const auto &group : productDataIt.value().groups()) {
- for (const auto &sourceArtifact : group.allSourceArtifacts()) {
+ const auto groups = productDataIt.value().groups();
+ for (const auto &group : groups) {
+ const auto sourceArtifacts = group.allSourceArtifacts();
+ for (const auto &sourceArtifact : sourceArtifacts) {
const auto filePath = sourceArtifact.filePath();
if (sourceFileNodes.find(filePath) == sourceFileNodes.end()) {
sourceFileNodes.insert({
diff --git a/src/plugins/generator/visualstudio/solution/visualstudiosolution.cpp b/src/plugins/generator/visualstudio/solution/visualstudiosolution.cpp
index fbd6a3848..c09ef1f4f 100644
--- a/src/plugins/generator/visualstudio/solution/visualstudiosolution.cpp
+++ b/src/plugins/generator/visualstudio/solution/visualstudiosolution.cpp
@@ -74,7 +74,7 @@ QList<IVisualStudioSolutionProject *> VisualStudioSolution::projects() const
QList<VisualStudioSolutionFileProject *> VisualStudioSolution::fileProjects() const
{
QList<VisualStudioSolutionFileProject *> list;
- for (const auto &project : d->projects)
+ for (const auto &project : qAsConst(d->projects))
if (auto fileProject = qobject_cast<VisualStudioSolutionFileProject *>(project))
list.push_back(fileProject);
return list;
@@ -83,7 +83,7 @@ QList<VisualStudioSolutionFileProject *> VisualStudioSolution::fileProjects() co
QList<VisualStudioSolutionFolderProject *> VisualStudioSolution::folderProjects() const
{
QList<VisualStudioSolutionFolderProject *> list;
- for (const auto &project : d->projects)
+ for (const auto &project : qAsConst(d->projects))
if (auto folderProject = qobject_cast<VisualStudioSolutionFolderProject *>(project))
list.push_back(folderProject);
return list;
diff --git a/src/plugins/generator/visualstudio/visualstudiogenerator.cpp b/src/plugins/generator/visualstudio/visualstudiogenerator.cpp
index 47f0363a6..04fc5a52e 100644
--- a/src/plugins/generator/visualstudio/visualstudiogenerator.cpp
+++ b/src/plugins/generator/visualstudio/visualstudiogenerator.cpp
@@ -130,7 +130,8 @@ public:
const GeneratableProductData &productData) override {
Q_UNUSED(project);
Q_UNUSED(projectData);
- for (const auto &dep : productData.dependencies()) {
+ const auto dependencies = productData.dependencies();
+ for (const auto &dep : dependencies) {
generator->d->solution->addDependency(
generator->d->solutionProjects.value(productData.name()),
generator->d->solutionProjects.value(dep));
@@ -190,7 +191,7 @@ void VisualStudioGenerator::addPropertySheets(const GeneratableProject &project)
void VisualStudioGenerator::addPropertySheets(
const std::shared_ptr<MSBuildTargetProject> &targetProject)
{
- for (const auto &pair : d->propertySheetNames) {
+ for (const auto &pair : qAsConst(d->propertySheetNames)) {
targetProject->appendPropertySheet(
QStringLiteral("$(SolutionDir)\\") + pair.first, pair.second);
}
@@ -221,7 +222,8 @@ static void addDefaultGlobalSections(const GeneratableProject &topLevelProject,
QStringLiteral("ProjectConfigurationPlatforms"), solution);
solution->appendGlobalSection(projectConfigurationPlatformsSection);
projectConfigurationPlatformsSection->setPost(true);
- for (const auto project : solution->projects()) {
+ const auto projects = solution->projects();
+ for (const auto project : projects) {
for (const auto &qbsProject : topLevelProject.projects) {
projectConfigurationPlatformsSection->appendProperty(
QStringLiteral("%1.%2.ActiveCfg")
diff --git a/tests/auto/api/testdata/excluded-inputs/excluded-inputs.qbs b/tests/auto/api/testdata/excluded-inputs/excluded-inputs.qbs
index 7633b3ebe..fe3cacd6d 100644
--- a/tests/auto/api/testdata/excluded-inputs/excluded-inputs.qbs
+++ b/tests/auto/api/testdata/excluded-inputs/excluded-inputs.qbs
@@ -92,7 +92,7 @@ Project {
Rule {
multiplex: true
explicitlyDependsOnFromDependencies: "the_tag"
- excludedAuxiliaryInputs: "the_other_tag"
+ excludedInputs: "the_other_tag"
Artifact {
filePath: "dummy3.txt"
fileTags: "p_type"
diff --git a/tests/auto/api/tst_api.cpp b/tests/auto/api/tst_api.cpp
index 58150150a..c998b81e8 100644
--- a/tests/auto/api/tst_api.cpp
+++ b/tests/auto/api/tst_api.cpp
@@ -2268,8 +2268,12 @@ void TestApi::processResult()
QCOMPARE(expectedExitCode == 0, result.success());
QCOMPARE(result.error(), QProcess::UnknownError);
struct CheckParams {
- CheckParams(bool r, const QString &f, const QByteArray &c, const QStringList &co)
- : redirect(r), fileName(f), expectedContent(c), consoleOutput(co) {}
+ CheckParams(bool r, QString f, QByteArray c, QStringList co)
+ : redirect(r)
+ , fileName(std::move(f))
+ , expectedContent(std::move(c))
+ , consoleOutput(std::move(co))
+ {}
bool redirect;
QString fileName;
QByteArray expectedContent;
@@ -2847,7 +2851,8 @@ void TestApi::toolInModule()
const QList<qbs::ProductData> products = projectData.products();
QCOMPARE(products.size(), 1);
const qbs::ProductData product = products.front();
- for (const qbs::GroupData &group : product.groups())
+ const auto groups = product.groups();
+ for (const qbs::GroupData &group : groups)
QVERIFY(group.name() != "thetool binary");
const std::unique_ptr<qbs::BuildJob> buildJob(setupJob->project()
.buildAllProducts(qbs::BuildOptions()));
diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp
index bc187b210..ca11e4e3e 100644
--- a/tests/auto/blackbox/tst_blackbox.cpp
+++ b/tests/auto/blackbox/tst_blackbox.cpp
@@ -6093,14 +6093,14 @@ static bool haveInnoSetup(const Profile &profile)
QStringList paths = QProcessEnvironment::systemEnvironment().value("PATH")
.split(HostOsInfo::pathListSeparator(), QString::SkipEmptyParts);
- for (const QString &key : regKeys) {
+ for (const QString &key : qAsConst(regKeys)) {
QSettings settings(key, QSettings::NativeFormat);
QString str = settings.value(QStringLiteral("InstallLocation")).toString();
if (!str.isEmpty())
paths.prepend(str);
}
- for (const QString &path : paths) {
+ for (const QString &path : qAsConst(paths)) {
if (regularFileExists(QDir::fromNativeSeparators(path) +
HostOsInfo::appendExecutableSuffix(QStringLiteral("/ISCC"))))
return true;
diff --git a/tests/auto/blackbox/tst_blackboxapple.cpp b/tests/auto/blackbox/tst_blackboxapple.cpp
index 7cbc07b95..d9cabe270 100644
--- a/tests/auto/blackbox/tst_blackboxapple.cpp
+++ b/tests/auto/blackbox/tst_blackboxapple.cpp
@@ -749,7 +749,8 @@ void TestBlackboxApple::xcode()
QVERIFY2(xcodebuildShowSdks.waitForStarted(), qPrintable(xcodebuildShowSdks.errorString()));
QVERIFY2(xcodebuildShowSdks.waitForFinished(), qPrintable(xcodebuildShowSdks.errorString()));
QVERIFY2(xcodebuildShowSdks.exitCode() == 0, qPrintable(xcodebuildShowSdks.readAllStandardError().constData()));
- for (const QString &line : QString::fromLocal8Bit(xcodebuildShowSdks.readAllStandardOutput().trimmed()).split('\n', QString::SkipEmptyParts)) {
+ const auto lines = QString::fromLocal8Bit(xcodebuildShowSdks.readAllStandardOutput().trimmed()).split('\n', QString::SkipEmptyParts);
+ for (const QString &line : lines) {
static const std::regex regexp("^.+\\s+\\-sdk\\s+([a-z]+)([0-9]+\\.[0-9]+)$");
const auto ln = line.toStdString();
std::smatch match;
diff --git a/tests/auto/blackbox/tst_clangdb.cpp b/tests/auto/blackbox/tst_clangdb.cpp
index 6a4072dd8..3a6dd2d92 100644
--- a/tests/auto/blackbox/tst_clangdb.cpp
+++ b/tests/auto/blackbox/tst_clangdb.cpp
@@ -111,7 +111,8 @@ void TestClangDb::ensureBuildTreeCreated()
if (m_qbsStdout.contains("is msvc") || m_qbsStdout.contains("is mingw")) {
sanitizeOutput(&m_qbsStdout);
- for (const auto &line : m_qbsStdout.split('\n')) {
+ const auto lines = m_qbsStdout.split('\n');
+ for (const auto &line : lines) {
static const QByteArray includeEnv = "INCLUDE=";
static const QByteArray libEnv = "LIB=";
static const QByteArray pathEnv = "PATH=";
diff --git a/tests/auto/tools/tst_tools.cpp b/tests/auto/tools/tst_tools.cpp
index da40a2dc6..a6c699232 100644
--- a/tests/auto/tools/tst_tools.cpp
+++ b/tests/auto/tools/tst_tools.cpp
@@ -679,10 +679,10 @@ void TestTools::set_begin()
Set<int> set2 = set1;
{
- Set<int>::const_iterator i = set1.constBegin();
- Set<int>::const_iterator j = set1.cbegin();
- Set<int>::const_iterator k = set2.constBegin();
- Set<int>::const_iterator ell = set2.cbegin();
+ const auto i = set1.constBegin();
+ const auto j = set1.cbegin();
+ const auto k = set2.constBegin();
+ const auto ell = set2.cbegin();
QVERIFY(i == j);
QVERIFY(k == ell);
@@ -691,10 +691,10 @@ void TestTools::set_begin()
set1.insert(44);
{
- Set<int>::const_iterator i = set1.constBegin();
- Set<int>::const_iterator j = set1.cbegin();
- Set<int>::const_iterator k = set2.constBegin();
- Set<int>::const_iterator ell = set2.cbegin();
+ const auto i = set1.constBegin();
+ const auto j = set1.cbegin();
+ const auto k = set2.constBegin();
+ const auto ell = set2.cbegin();
QVERIFY(i == j);
QVERIFY(k == ell);
@@ -703,10 +703,10 @@ void TestTools::set_begin()
set2 = set1;
{
- Set<int>::const_iterator i = set1.constBegin();
- Set<int>::const_iterator j = set1.cbegin();
- Set<int>::const_iterator k = set2.constBegin();
- Set<int>::const_iterator ell = set2.cbegin();
+ const auto i = set1.constBegin();
+ const auto j = set1.cbegin();
+ const auto k = set2.constBegin();
+ const auto ell = set2.cbegin();
QVERIFY(i == j);
QVERIFY(k == ell);
@@ -719,10 +719,10 @@ void TestTools::set_end()
Set<int> set2 = set1;
{
- Set<int>::const_iterator i = set1.constEnd();
- Set<int>::const_iterator j = set1.cend();
- Set<int>::const_iterator k = set2.constEnd();
- Set<int>::const_iterator ell = set2.cend();
+ const auto i = set1.constEnd();
+ const auto j = set1.cend();
+ const auto k = set2.constEnd();
+ const auto ell = set2.cend();
QVERIFY(i == j);
QVERIFY(k == ell);
@@ -734,10 +734,10 @@ void TestTools::set_end()
set1.insert(44);
{
- Set<int>::const_iterator i = set1.constEnd();
- Set<int>::const_iterator j = set1.cend();
- Set<int>::const_iterator k = set2.constEnd();
- Set<int>::const_iterator ell = set2.cend();
+ const auto i = set1.constEnd();
+ const auto j = set1.cend();
+ const auto k = set2.constEnd();
+ const auto ell = set2.cend();
QVERIFY(i == j);
QVERIFY(k == ell);
@@ -749,10 +749,10 @@ void TestTools::set_end()
set2 = set1;
{
- Set<int>::const_iterator i = set1.constEnd();
- Set<int>::const_iterator j = set1.cend();
- Set<int>::const_iterator k = set2.constEnd();
- Set<int>::const_iterator ell = set2.cend();
+ const auto i = set1.constEnd();
+ const auto j = set1.cend();
+ const auto k = set2.constEnd();
+ const auto ell = set2.cend();
QVERIFY(i == j);
QVERIFY(k == ell);