summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@digia.com>2013-11-18 16:18:34 +0100
committerChristian Kandeler <christian.kandeler@digia.com>2013-11-18 18:40:25 +0100
commite32f9bf66f023669a748046fae9c6d030deef9a0 (patch)
tree0ac36fb1a0902d1e688c8c9b23b55047e6a58f33
parent67b0f10356220f6fa485ef9bb49cc1a1b0844d1b (diff)
downloadqbs-e32f9bf66f023669a748046fae9c6d030deef9a0.tar.gz
Store information about file tags and prefix in the ResolvedGroup class.
This is needed for adding files at run time. Change-Id: I71b8a28b9dd63fab2162bbc6df6b91b953576e04 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
-rw-r--r--src/lib/language/language.cpp8
-rw-r--r--src/lib/language/language.h3
-rw-r--r--src/lib/language/projectresolver.cpp13
-rw-r--r--src/lib/tools/persistence.cpp2
4 files changed, 18 insertions, 8 deletions
diff --git a/src/lib/language/language.cpp b/src/lib/language/language.cpp
index 9241af3da..9fd854e3d 100644
--- a/src/lib/language/language.cpp
+++ b/src/lib/language/language.cpp
@@ -180,9 +180,13 @@ void ResolvedGroup::load(PersistentPool &pool)
pool.stream()
>> enabled
>> location;
+ prefix = pool.idLoadString();
pool.loadContainerS(files);
wildcards = pool.idLoadS<SourceWildCards>();
properties = pool.idLoadS<PropertyMapInternal>();
+ pool.stream()
+ >> fileTags
+ >> overrideTags;
}
void ResolvedGroup::store(PersistentPool &pool) const
@@ -191,9 +195,13 @@ void ResolvedGroup::store(PersistentPool &pool) const
pool.stream()
<< enabled
<< location;
+ pool.storeString(prefix);
pool.storeContainer(files);
pool.store(wildcards);
pool.store(properties);
+ pool.stream()
+ << fileTags
+ << overrideTags;
}
/*!
diff --git a/src/lib/language/language.h b/src/lib/language/language.h
index a41f1f948..334400035 100644
--- a/src/lib/language/language.h
+++ b/src/lib/language/language.h
@@ -183,9 +183,12 @@ public:
QString name;
bool enabled;
+ QString prefix;
QList<SourceArtifactPtr> files;
SourceWildCards::Ptr wildcards;
PropertyMapPtr properties;
+ FileTags fileTags;
+ bool overrideTags;
QList<SourceArtifactPtr> allFiles() const;
diff --git a/src/lib/language/projectresolver.cpp b/src/lib/language/projectresolver.cpp
index b71f16f2f..fa9f5ad94 100644
--- a/src/lib/language/projectresolver.cpp
+++ b/src/lib/language/projectresolver.cpp
@@ -454,17 +454,16 @@ void ProjectResolver::resolveGroup(Item *item, ProjectContext *projectContext)
if (FileInfo::isPattern(files[i]))
patterns.append(files.takeAt(i));
}
- prefix = m_evaluator->stringValue(item, QLatin1String("prefix"));
+ GroupPtr group = ResolvedGroup::create();
+ group->prefix = m_evaluator->stringValue(item, QLatin1String("prefix"));
if (!prefix.isEmpty()) {
for (int i = files.count(); --i >= 0;)
files[i].prepend(prefix);
}
- FileTags fileTags = m_evaluator->fileTagsValue(item, QLatin1String("fileTags"));
- bool overrideTags = m_evaluator->boolValue(item, QLatin1String("overrideTags"));
-
- GroupPtr group = ResolvedGroup::create();
group->location = item->location();
group->enabled = isEnabled;
+ group->fileTags = m_evaluator->fileTagsValue(item, QLatin1String("fileTags"));
+ group->overrideTags = m_evaluator->boolValue(item, QLatin1String("overrideTags"));
if (!patterns.isEmpty()) {
SourceWildCards::Ptr wildcards = SourceWildCards::create();
@@ -474,13 +473,13 @@ void ProjectResolver::resolveGroup(Item *item, ProjectContext *projectContext)
QSet<QString> files = wildcards->expandPatterns(group, m_productContext->product->sourceDirectory);
foreach (const QString &fileName, files)
createSourceArtifact(m_productContext->product, properties, fileName,
- fileTags, overrideTags, wildcards->files);
+ group->fileTags, group->overrideTags, wildcards->files);
group->wildcards = wildcards;
}
foreach (const QString &fileName, files)
createSourceArtifact(m_productContext->product, properties, fileName,
- fileTags, overrideTags, group->files);
+ group->fileTags, group->overrideTags, group->files);
ErrorInfo fileError;
foreach (const SourceArtifactConstPtr &a, group->files) {
if (!FileInfo(a->absoluteFilePath).exists()) {
diff --git a/src/lib/tools/persistence.cpp b/src/lib/tools/persistence.cpp
index c40fa8470..7b408cfcc 100644
--- a/src/lib/tools/persistence.cpp
+++ b/src/lib/tools/persistence.cpp
@@ -40,7 +40,7 @@
namespace qbs {
namespace Internal {
-static const char QBS_PERSISTENCE_MAGIC[] = "QBSPERSISTENCE-54";
+static const char QBS_PERSISTENCE_MAGIC[] = "QBSPERSISTENCE-55";
PersistentPool::PersistentPool(const Logger &logger) : m_logger(logger)
{