aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/buildgraph/inputartifactscanner.cpp
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@digia.com>2014-05-19 15:50:21 +0200
committerChristian Kandeler <christian.kandeler@digia.com>2014-05-20 16:32:49 +0200
commit44518d22d75a4772ba9a3d838b84051c4ebb35ea (patch)
tree509b2da7b7700be64f4b4b36897d4142f127bf7a /src/lib/corelib/buildgraph/inputartifactscanner.cpp
parentdc8eb4dc803848ae83b227095a68344211191407 (diff)
let scanners operate on FileResourceBase objects
File dependencies should be scannable for dependencies too. Change-Id: I7223ba65ee6ca02f70c8e48165652550007e91f6 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Diffstat (limited to 'src/lib/corelib/buildgraph/inputartifactscanner.cpp')
-rw-r--r--src/lib/corelib/buildgraph/inputartifactscanner.cpp35
1 files changed, 19 insertions, 16 deletions
diff --git a/src/lib/corelib/buildgraph/inputartifactscanner.cpp b/src/lib/corelib/buildgraph/inputartifactscanner.cpp
index f3b57e438..b9fb6fea5 100644
--- a/src/lib/corelib/buildgraph/inputartifactscanner.cpp
+++ b/src/lib/corelib/buildgraph/inputartifactscanner.cpp
@@ -132,10 +132,10 @@ static void resolveAbsolutePath(const ScanResultCache::Dependency &dependency,
}
static void scanWithScannerPlugin(DependencyScanner *scanner,
- Artifact *artifactToBeScanned,
+ FileResourceBase *fileToBeScanned,
ScanResultCache::Result *scanResult)
{
- QStringList dependencies = scanner->collectDependencies(artifactToBeScanned);
+ QStringList dependencies = scanner->collectDependencies(fileToBeScanned);
foreach (const QString &s, dependencies)
scanResult->deps += ScanResultCache::Dependency(s);
scanResult->valid = true;
@@ -188,19 +188,19 @@ void InputArtifactScanner::scanForFileDependencies(Artifact *inputArtifact)
InputArtifactScannerContext::CacheItem &cacheItem = m_context->cache[inputArtifact->properties];
QSet<QString> visitedFilePaths;
- QList<Artifact*> artifactsToScan;
- artifactsToScan.append(inputArtifact);
+ QList<FileResourceBase *> filesToScan;
+ filesToScan.append(inputArtifact);
const QSet<DependencyScanner *> scanners = scannersForArtifact(inputArtifact);
- while (!artifactsToScan.isEmpty()) {
- Artifact* artifactToBeScanned = artifactsToScan.takeFirst();
- const QString &filePathToBeScanned = artifactToBeScanned->filePath();
+ while (!filesToScan.isEmpty()) {
+ FileResourceBase *fileToBeScanned = filesToScan.takeFirst();
+ const QString &filePathToBeScanned = fileToBeScanned->filePath();
if (visitedFilePaths.contains(filePathToBeScanned))
continue;
visitedFilePaths.insert(filePathToBeScanned);
foreach (DependencyScanner *scanner, scanners) {
- scanForScannerFileDependencies(scanner, inputArtifact, artifactToBeScanned,
- scanner->recursive() ? &artifactsToScan : 0, cacheItem[scanner->key()]);
+ scanForScannerFileDependencies(scanner, inputArtifact, fileToBeScanned,
+ scanner->recursive() ? &filesToScan : 0, cacheItem[scanner->key()]);
}
}
}
@@ -236,11 +236,14 @@ QSet<DependencyScanner *> InputArtifactScanner::scannersForArtifact(const Artifa
}
void InputArtifactScanner::scanForScannerFileDependencies(DependencyScanner *scanner,
- Artifact *inputArtifact, Artifact* artifactToBeScanned, QList<Artifact *> *artifactsToScan,
+ Artifact *inputArtifact, FileResourceBase *fileToBeScanned,
+ QList<FileResourceBase *> *filesToScan,
InputArtifactScannerContext::ScannerResolvedDependenciesCache &cache)
{
- if (m_logger.traceEnabled())
- m_logger.qbsTrace() << "[DEPSCAN] file " << artifactToBeScanned->filePath();
+ if (m_logger.traceEnabled()) {
+ m_logger.qbsTrace() << QString::fromLocal8Bit("[DEPSCAN] file %1")
+ .arg(fileToBeScanned->filePath());
+ }
const bool cacheHit = cache.valid;
if (!cacheHit) {
@@ -254,11 +257,11 @@ void InputArtifactScanner::scanForScannerFileDependencies(DependencyScanner *sca
m_logger.qbsTrace() << " " << s;
}
- const QString &filePathToBeScanned = artifactToBeScanned->filePath();
+ const QString &filePathToBeScanned = fileToBeScanned->filePath();
ScanResultCache::Result scanResult = m_context->scanResultCache->value(scanner->key(), filePathToBeScanned);
if (!scanResult.valid) {
try {
- scanWithScannerPlugin(scanner, artifactToBeScanned, &scanResult);
+ scanWithScannerPlugin(scanner, fileToBeScanned, &scanResult);
} catch (const ErrorInfo &error) {
m_logger.printWarning(error);
return;
@@ -266,11 +269,11 @@ void InputArtifactScanner::scanForScannerFileDependencies(DependencyScanner *sca
m_context->scanResultCache->insert(scanner->key(), filePathToBeScanned, scanResult);
}
- resolveScanResultDependencies(inputArtifact, scanResult, artifactsToScan, cache);
+ resolveScanResultDependencies(inputArtifact, scanResult, filesToScan, cache);
}
void InputArtifactScanner::resolveScanResultDependencies(const Artifact *inputArtifact,
- const ScanResultCache::Result &scanResult, QList<Artifact*> *artifactsToScan,
+ const ScanResultCache::Result &scanResult, QList<FileResourceBase *> *artifactsToScan,
InputArtifactScannerContext::ScannerResolvedDependenciesCache &cache)
{
foreach (const ScanResultCache::Dependency &dependency, scanResult.deps) {