aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lib/corelib/buildgraph/buildgraphloader.cpp2
-rw-r--r--src/lib/corelib/language/language.cpp35
-rw-r--r--src/lib/corelib/language/language.h20
-rw-r--r--src/lib/corelib/loader/productresolver.cpp3
4 files changed, 20 insertions, 40 deletions
diff --git a/src/lib/corelib/buildgraph/buildgraphloader.cpp b/src/lib/corelib/buildgraph/buildgraphloader.cpp
index eae52864f..18287e39f 100644
--- a/src/lib/corelib/buildgraph/buildgraphloader.cpp
+++ b/src/lib/corelib/buildgraph/buildgraphloader.cpp
@@ -606,7 +606,7 @@ bool BuildGraphLoader::hasProductFileChanged(const std::vector<ResolvedProductPt
});
if (!reExpansionRequired)
continue;
- const Set<QString> files = group->wildcards->expandPatterns(group,
+ const Set<QString> files = group->wildcards->expandPatterns(group->prefix,
FileInfo::path(group->location.filePath()),
product->topLevelProject()->buildDirectory);
Set<QString> wcFiles;
diff --git a/src/lib/corelib/language/language.cpp b/src/lib/corelib/language/language.cpp
index 0d2813447..8b87a7977 100644
--- a/src/lib/corelib/language/language.cpp
+++ b/src/lib/corelib/language/language.cpp
@@ -166,18 +166,6 @@ std::vector<SourceArtifactPtr> ResolvedGroup::allFiles() const
return lst;
}
-void ResolvedGroup::load(PersistentPool &pool)
-{
- serializationOp<PersistentPool::Load>(pool);
- if (wildcards)
- wildcards->group = this;
-}
-
-void ResolvedGroup::store(PersistentPool &pool)
-{
- serializationOp<PersistentPool::Store>(pool);
-}
-
/*!
* \class RuleArtifact
* \brief The \c RuleArtifact class represents an Artifact item encountered in the context
@@ -717,19 +705,19 @@ void TopLevelProject::cleanupModuleProviderOutput()
* \brief The \c SourceArtifacts resulting from the expanded list of matching files.
*/
-Set<QString> SourceWildCards::expandPatterns(const GroupConstPtr &group,
- const QString &baseDir, const QString &buildDir)
+Set<QString> SourceWildCards::expandPatterns(const QString &prefix, const QString &baseDir,
+ const QString &buildDir)
{
- Set<QString> files = expandPatterns(group, patterns, baseDir, buildDir);
- files -= expandPatterns(group, excludePatterns, baseDir, buildDir);
+ Set<QString> files = expandPatterns(prefix, patterns, baseDir, buildDir);
+ files -= expandPatterns(prefix, excludePatterns, baseDir, buildDir);
return files;
}
-Set<QString> SourceWildCards::expandPatterns(const GroupConstPtr &group,
- const QStringList &patterns, const QString &baseDir, const QString &buildDir)
+Set<QString> SourceWildCards::expandPatterns(const QString &prefix, const QStringList &patterns,
+ const QString &baseDir, const QString &buildDir)
{
Set<QString> files;
- QString expandedPrefix = group->prefix;
+ QString expandedPrefix = prefix;
if (expandedPrefix.startsWith(StringConstants::tildeSlash()))
expandedPrefix.replace(0, 1, QDir::homePath());
for (QString pattern : patterns) {
@@ -745,17 +733,16 @@ Set<QString> SourceWildCards::expandPatterns(const GroupConstPtr &group,
} else {
rootDir = QLatin1Char('/');
}
- expandPatterns(files, group, parts, rootDir, buildDir);
+ expandPatterns(files, parts, rootDir, buildDir);
} else {
- expandPatterns(files, group, parts, baseDir, buildDir);
+ expandPatterns(files, parts, baseDir, buildDir);
}
}
return files;
}
-void SourceWildCards::expandPatterns(Set<QString> &result, const GroupConstPtr &group,
- const QStringList &parts,
+void SourceWildCards::expandPatterns(Set<QString> &result, const QStringList &parts,
const QString &baseDir, const QString &buildDir)
{
// People might build directly in the project source directory. This is okay, since
@@ -806,7 +793,7 @@ void SourceWildCards::expandPatterns(Set<QString> &result, const GroupConstPtr &
if (!isDir && it.fileInfo().isDir() && !it.fileInfo().isSymLink())
continue;
if (isDir) {
- expandPatterns(result, group, changed_parts, filePath, buildDir);
+ expandPatterns(result, changed_parts, filePath, buildDir);
} else {
if (parentDir != baseDir)
dirTimeStamps.emplace_back(parentDir, FileInfo(baseDir).lastModified());
diff --git a/src/lib/corelib/language/language.h b/src/lib/corelib/language/language.h
index 86f0f86fe..c2f892727 100644
--- a/src/lib/corelib/language/language.h
+++ b/src/lib/corelib/language/language.h
@@ -259,10 +259,9 @@ inline bool operator!=(const SourceArtifactInternal &sa1, const SourceArtifactIn
class SourceWildCards
{
public:
- Set<QString> expandPatterns(const GroupConstPtr &group, const QString &baseDir,
- const QString &buildDir);
+ Set<QString> expandPatterns(const QString &prefix, const QString &baseDir,
+ const QString &buildDir);
- const ResolvedGroup *group = nullptr; // The owning group.
QStringList patterns;
QStringList excludePatterns;
std::vector<std::pair<QString, FileTime>> dirTimeStamps;
@@ -274,11 +273,10 @@ public:
}
private:
- Set<QString> expandPatterns(const GroupConstPtr &group, const QStringList &patterns,
- const QString &baseDir, const QString &buildDir);
- void expandPatterns(Set<QString> &result, const GroupConstPtr &group,
- const QStringList &parts, const QString &baseDir,
- const QString &buildDir);
+ Set<QString> expandPatterns(const QString &prefix, const QStringList &patterns,
+ const QString &baseDir, const QString &buildDir);
+ void expandPatterns(Set<QString> &result, const QStringList &parts,
+ const QString &baseDir, const QString &buildDir);
};
class QBS_AUTOTEST_EXPORT ResolvedGroup
@@ -300,11 +298,7 @@ public:
std::vector<SourceArtifactPtr> allFiles() const;
- void load(PersistentPool &pool);
- void store(PersistentPool &pool);
-
-private:
- template<PersistentPool::OpType opType> void serializationOp(PersistentPool &pool)
+ template<PersistentPool::OpType opType> void completeSerializationOp(PersistentPool &pool)
{
pool.serializationOp<opType>(name, enabled, location, prefix, files, wildcards, properties,
fileTags, targetOfModule, overrideTags);
diff --git a/src/lib/corelib/loader/productresolver.cpp b/src/lib/corelib/loader/productresolver.cpp
index 6d10132ee..f27e1bf37 100644
--- a/src/lib/corelib/loader/productresolver.cpp
+++ b/src/lib/corelib/loader/productresolver.cpp
@@ -787,11 +787,10 @@ void ProductResolverStage2::resolveGroupFully(Item *item, bool isEnabled)
if (!patterns.empty()) {
group->wildcards = std::make_unique<SourceWildCards>();
SourceWildCards *wildcards = group->wildcards.get();
- wildcards->group = group.get();
wildcards->excludePatterns = evaluator.stringListValue(
item, StringConstants::excludeFilesProperty());
wildcards->patterns = patterns;
- const Set<QString> files = wildcards->expandPatterns(group,
+ const Set<QString> files = wildcards->expandPatterns(group->prefix,
FileInfo::path(item->file()->filePath()),
m_product.project->project->topLevelProject()->buildDirectory);
for (const QString &fileName : files)