diff options
author | Christian Kandeler <christian.kandeler@digia.com> | 2013-11-18 16:18:34 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@digia.com> | 2013-11-18 18:40:25 +0100 |
commit | e32f9bf66f023669a748046fae9c6d030deef9a0 (patch) | |
tree | 0ac36fb1a0902d1e688c8c9b23b55047e6a58f33 /src/lib | |
parent | 67b0f10356220f6fa485ef9bb49cc1a1b0844d1b (diff) | |
download | qbs-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>
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/language/language.cpp | 8 | ||||
-rw-r--r-- | src/lib/language/language.h | 3 | ||||
-rw-r--r-- | src/lib/language/projectresolver.cpp | 13 | ||||
-rw-r--r-- | src/lib/tools/persistence.cpp | 2 |
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) { |