diff options
author | Maxim Zaitsev <maxim.m.zaitsev@gmail.com> | 2014-01-21 23:00:31 +0400 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-01-29 12:59:55 +0100 |
commit | f1db83fdfe3c930be9f37d6341d7cc946aa47c1a (patch) | |
tree | 5a61085a89fd362d8ffe320dac4e303ba10d603a /src/lib/corelib/language/projectresolver.cpp | |
parent | efb117fb659f462ecd8db9d2d3d6ce04d01bbe34 (diff) |
Fix handling additionalProductFileTags
Rules that produce additionalProductFileTags added to the rule graph,
but they are not reachable from the product.
'additionalProductFileTags' declared deprecated in product scope, because
it's enough to use 'Product.type' property, as it can hold the list of
file tags). 'Module.additionalProductFileTags' property renamed to
'additionalProductTypes' as it's more appropriate name.
Change-Id: I6e55199162b29dace5bbbad7e2c9eda46f47f424
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src/lib/corelib/language/projectresolver.cpp')
-rw-r--r-- | src/lib/corelib/language/projectresolver.cpp | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/src/lib/corelib/language/projectresolver.cpp b/src/lib/corelib/language/projectresolver.cpp index 88e2b70ce..981962652 100644 --- a/src/lib/corelib/language/projectresolver.cpp +++ b/src/lib/corelib/language/projectresolver.cpp @@ -300,8 +300,17 @@ void ProjectResolver::resolveProduct(Item *item, ProjectContext *projectContext) ModuleLoader::overrideItemProperties(item, product->name, m_setupParams.overriddenValuesTree()); m_productsByName.insert(product->name, product); product->enabled = m_evaluator->boolValue(item, QLatin1String("condition")); - product->additionalFileTags - = m_evaluator->fileTagsValue(item, QLatin1String("additionalFileTags")); + + // TODO: Remove in 1.3. + bool additionalFileTagsWasSet; + const QStringList additionalFileTags = m_evaluator->stringListValue(item, QLatin1String("additionalFileTags"), + &additionalFileTagsWasSet); + if (additionalFileTagsWasSet) { + m_logger.printWarning(ErrorInfo(Tr::tr("The 'additionalFileTags' property is deprecated. Please " + "use 'type' instead."), item->location())); + productContext.additionalFileTags += FileTags::fromStringList(additionalFileTags); + } + product->fileTags = m_evaluator->fileTagsValue(item, QLatin1String("type")); product->targetName = m_evaluator->stringValue(item, QLatin1String("targetName")); product->sourceDirectory = productSourceDirectory; @@ -344,6 +353,8 @@ void ProjectResolver::resolveProduct(Item *item, ProjectContext *projectContext) foreach (const Item::Module &module, item->modules()) resolveModule(module.name, module.item, projectContext); + product->fileTags += productContext.additionalFileTags; + m_productContext = 0; if (m_progressObserver) m_progressObserver->incrementProgressValue(); @@ -366,8 +377,17 @@ void ProjectResolver::resolveModule(const QStringList &moduleName, Item *item, module->setupRunEnvironmentScript = scriptFunctionValue(item, QLatin1String("setupRunEnvironment")); - m_productContext->product->additionalFileTags - += m_evaluator->fileTagsValue(item, QLatin1String("additionalProductFileTags")); + m_productContext->additionalFileTags += + m_evaluator->fileTagsValue(item, QLatin1String("additionalProductTypes")); + // TODO: Remove in 1.3. + bool additionalProductFileTagsWasSet; + const QStringList additionalProductFileTags = m_evaluator->stringListValue(item, QLatin1String("additionalProductFileTags"), + &additionalProductFileTagsWasSet); + if (additionalProductFileTagsWasSet) { + m_logger.printWarning(ErrorInfo(Tr::tr("The 'additionalProductFileTags' property is deprecated. Please " + "use 'additionalProductTypes' instead."), item->location())); + m_productContext->additionalFileTags += FileTags::fromStringList(additionalProductFileTags); + } foreach (const Item::Module &m, item->modules()) module->moduleDependencies += ModuleLoader::fullModuleName(m.name); |