aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/language/projectresolver.cpp
diff options
context:
space:
mode:
authorMaxim Zaitsev <maxim.m.zaitsev@gmail.com>2014-01-21 23:00:31 +0400
committerJoerg Bornemann <joerg.bornemann@digia.com>2014-01-29 12:59:55 +0100
commitf1db83fdfe3c930be9f37d6341d7cc946aa47c1a (patch)
tree5a61085a89fd362d8ffe320dac4e303ba10d603a /src/lib/corelib/language/projectresolver.cpp
parentefb117fb659f462ecd8db9d2d3d6ce04d01bbe34 (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.cpp28
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);