diff options
author | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-05-09 15:55:07 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@digia.com> | 2014-05-12 16:55:30 +0200 |
commit | 33f0e83c0cd2c2f149f2b03ac7cb4ba9dd22fb1a (patch) | |
tree | 20d071857dbd70bf226831420735afdb14a508a7 /src/lib/corelib/language | |
parent | 44fb1b39f48ba0c700e4ec90e84421eaf886c702 (diff) |
make product.sourceDirectory available in Probe item
Task-number: QBS-393
Change-Id: I33c588fd0c00231db2ca4fa4f9b70a5b1f5bc18f
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Diffstat (limited to 'src/lib/corelib/language')
-rw-r--r-- | src/lib/corelib/language/item.cpp | 8 | ||||
-rw-r--r-- | src/lib/corelib/language/item.h | 1 | ||||
-rw-r--r-- | src/lib/corelib/language/moduleloader.cpp | 3 | ||||
-rw-r--r-- | src/lib/corelib/language/projectresolver.cpp | 5 |
4 files changed, 13 insertions, 4 deletions
diff --git a/src/lib/corelib/language/item.cpp b/src/lib/corelib/language/item.cpp index 7b42df5e6..8b1dcb72a 100644 --- a/src/lib/corelib/language/item.cpp +++ b/src/lib/corelib/language/item.cpp @@ -122,6 +122,14 @@ JSSourceValuePtr Item::sourceProperty(const QString &name) const return v.staticCast<JSSourceValue>(); } +VariantValuePtr Item::variantProperty(const QString &name) const +{ + ValuePtr v = property(name); + if (!v || v->type() != Value::VariantValueType) + return VariantValuePtr(); + return v.staticCast<VariantValue>(); +} + const PropertyDeclaration Item::propertyDeclaration(const QString &name) const { const PropertyDeclaration decl = m_propertyDeclarations.value(name); diff --git a/src/lib/corelib/language/item.h b/src/lib/corelib/language/item.h index 866927a0e..8859957b0 100644 --- a/src/lib/corelib/language/item.h +++ b/src/lib/corelib/language/item.h @@ -102,6 +102,7 @@ public: ValuePtr property(const QString &name) const; ItemValuePtr itemProperty(const QString &name, bool create = false); JSSourceValuePtr sourceProperty(const QString &name) const; + VariantValuePtr variantProperty(const QString &name) const; void setPropertyObserver(ItemObserver *observer) const; void setProperty(const QString &name, const ValuePtr &value); void setPropertyDeclaration(const QString &name, const PropertyDeclaration &declaration); diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp index a709f7a57..beca9ee3d 100644 --- a/src/lib/corelib/language/moduleloader.cpp +++ b/src/lib/corelib/language/moduleloader.cpp @@ -288,6 +288,9 @@ void ModuleLoader::handleProduct(ProjectContext *projectContext, Item *item) if (m_logger.traceEnabled()) m_logger.qbsTrace() << "[MODLDR] handleProduct " << item->file()->filePath(); + item->setProperty(QLatin1String("sourceDirectory"), + VariantValue::create(QFileInfo(item->file()->filePath()).absolutePath())); + ProductContext productContext; productContext.project = projectContext; bool extraSearchPathsSet = false; diff --git a/src/lib/corelib/language/projectresolver.cpp b/src/lib/corelib/language/projectresolver.cpp index 7c532dee0..178e8e46d 100644 --- a/src/lib/corelib/language/projectresolver.cpp +++ b/src/lib/corelib/language/projectresolver.cpp @@ -274,9 +274,6 @@ void ProjectResolver::resolveProduct(Item *item, ProjectContext *projectContext) ProductContext productContext; m_productContext = &productContext; productContext.item = item; - const QString productSourceDirectory = QFileInfo(item->file()->filePath()).absolutePath(); - item->setProperty(QLatin1String("sourceDirectory"), - VariantValue::create(productSourceDirectory)); item->setProperty(QLatin1String("buildDirectory"), VariantValue::create(projectContext ->project->topLevelProject()->buildDirectory)); ResolvedProductPtr product = ResolvedProduct::create(); @@ -314,7 +311,7 @@ void ProjectResolver::resolveProduct(Item *item, ProjectContext *projectContext) product->fileTags = m_evaluator->fileTagsValue(item, QLatin1String("type")); product->targetName = m_evaluator->stringValue(item, QLatin1String("targetName")); - product->sourceDirectory = productSourceDirectory; + product->sourceDirectory = m_evaluator->stringValue(item, QLatin1String("sourceDirectory")); product->destinationDirectory = m_evaluator->stringValue(item, QLatin1String("destinationDirectory")); product->location = item->location(); |