diff options
author | Maxim Zaitsev <maxim.m.zaitsev@gmail.com> | 2014-03-04 02:46:31 +0400 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-03-12 15:27:44 +0100 |
commit | 9c8997413fb7d744e1d1b62b5c926cb089eb0d52 (patch) | |
tree | 566370cd102144ed4cb3c0000cf2998cf3dd974c /src/lib/corelib/language/projectresolver.cpp | |
parent | 91d4e47fc8eb506b3a906d75a838a28b2c3a38e4 (diff) |
Add new qml item Scanner
This item allows to write custom dependency scanners in modules.
Change-Id: I6cb49969973ee29896d1909e7a16bf5da50f8aef
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 | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/lib/corelib/language/projectresolver.cpp b/src/lib/corelib/language/projectresolver.cpp index 869b8c63e..081ccd55d 100644 --- a/src/lib/corelib/language/projectresolver.cpp +++ b/src/lib/corelib/language/projectresolver.cpp @@ -403,6 +403,7 @@ void ProjectResolver::resolveModule(const QStringList &moduleName, Item *item, mapping["Rule"] = &ProjectResolver::resolveRule; mapping["FileTagger"] = &ProjectResolver::resolveFileTagger; mapping["Transformer"] = &ProjectResolver::resolveTransformer; + mapping["Scanner"] = &ProjectResolver::resolveScanner; mapping["PropertyOptions"] = &ProjectResolver::ignoreItem; mapping["Depends"] = &ProjectResolver::ignoreItem; mapping["Probe"] = &ProjectResolver::ignoreItem; @@ -768,6 +769,23 @@ void ProjectResolver::resolveTransformer(Item *item, ProjectContext *projectCont m_productContext->product->transformers += rtrafo; } +void ProjectResolver::resolveScanner(Item *item, ProjectResolver::ProjectContext *projectContext) +{ + checkCancelation(); + if (!m_evaluator->boolValue(item, QLatin1String("condition"))) { + m_logger.qbsTrace() << "[PR] scanner condition is false"; + return; + } + + ResolvedScannerPtr scanner = ResolvedScanner::create(); + scanner->module = m_moduleContext ? m_moduleContext->module : projectContext->dummyModule; + scanner->inputs = m_evaluator->fileTagsValue(item, QLatin1String("inputs")); + scanner->recursive = m_evaluator->boolValue(item, QLatin1String("recursive")); + scanner->searchPathsScript = scriptFunctionValue(item, QLatin1String("searchPaths")); + scanner->scanScript = scriptFunctionValue(item, QLatin1String("scan")); + m_productContext->product->scanners += scanner; +} + void ProjectResolver::resolveExport(Item *item, ProjectContext *projectContext) { Q_UNUSED(projectContext); |