diff options
Diffstat (limited to 'src/lib/corelib/buildgraph/depscanner.cpp')
-rw-r--r-- | src/lib/corelib/buildgraph/depscanner.cpp | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/lib/corelib/buildgraph/depscanner.cpp b/src/lib/corelib/buildgraph/depscanner.cpp index c9fc04bb8..90c00c70d 100644 --- a/src/lib/corelib/buildgraph/depscanner.cpp +++ b/src/lib/corelib/buildgraph/depscanner.cpp @@ -100,9 +100,10 @@ QStringList PluginDependencyScanner::collectSearchPaths(Artifact *artifact) return QStringList(); } -QStringList PluginDependencyScanner::collectDependencies(FileResourceBase *file, +QStringList PluginDependencyScanner::collectDependencies(Artifact *artifact, FileResourceBase *file, const char *fileTags) { + Q_UNUSED(artifact); Set<QString> result; QString baseDirOfInFilePath = file->dirPath(); const QString &filepath = file->filePath(); @@ -167,16 +168,14 @@ UserDependencyScanner::UserDependencyScanner(const ResolvedScannerConstPtr &scan QStringList UserDependencyScanner::collectSearchPaths(Artifact *artifact) { - return evaluate(artifact, m_scanner->searchPathsScript); + return evaluate(artifact, nullptr, m_scanner->searchPathsScript); } -QStringList UserDependencyScanner::collectDependencies(FileResourceBase *file, const char *fileTags) +QStringList UserDependencyScanner::collectDependencies(Artifact *artifact, FileResourceBase *file, + const char *fileTags) { Q_UNUSED(fileTags); - // ### support user dependency scanners for file deps - if (file->fileType() != FileResourceBase::FileTypeArtifact) - return QStringList(); - return evaluate(static_cast<Artifact *>(file), m_scanner->scanScript); + return evaluate(artifact, file, m_scanner->scanScript); } bool UserDependencyScanner::recursive() const @@ -219,7 +218,8 @@ public: } }; -QStringList UserDependencyScanner::evaluate(Artifact *artifact, const PrivateScriptFunction &script) +QStringList UserDependencyScanner::evaluate(const Artifact *artifact, + const FileResourceBase *fileToScan, const PrivateScriptFunction &script) { ScriptEngineActiveFlagGuard guard(m_engine); @@ -230,10 +230,12 @@ QStringList UserDependencyScanner::evaluate(Artifact *artifact, const PrivateScr } QScriptValueList args; - args.reserve(3); + args.reserve(fileToScan ? 4 : 3); args.push_back(m_global.property(StringConstants::projectVar())); args.push_back(m_global.property(StringConstants::productVar())); args.push_back(Transformer::translateFileConfig(m_engine, artifact, m_scanner->module->name)); + if (fileToScan) + args.push_back(fileToScan->filePath()); m_engine->setGlobalObject(m_global); QScriptValue &function = script.scriptFunction; |