CMake: Update code to decide whether to run cmake in fileapi mode

Change-Id: Iea841bb49876a580abc80cc7ea21a88b153cc224
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Tobias Hunger
2019-06-21 14:14:31 +02:00
parent ea34cb2b4c
commit 09ae77d0a9
3 changed files with 33 additions and 6 deletions

View File

@@ -858,7 +858,7 @@ void FileApiParser::setupCMakeFileApi() const
QTC_ASSERT(queryDir.exists(), );
bool failedBefore = false;
for (const QString &fileName : QStringList({"cache-v2", "codemodel-v2", "cmakeFiles-v1"})) {
for (const QString &fileName : cmakeQueryFileNames()) {
const QString filePath = queryDir.filePath(fileName);
QFile f(filePath);
@@ -933,6 +933,19 @@ QFileInfo FileApiParser::scanForCMakeReplyFile() const
return fis.isEmpty() ? QFileInfo() : fis.last();
}
QStringList FileApiParser::cmakeQueryFileNames() const
{
return {"cache-v2", "codemodel-v2", "cmakeFiles-v1"};
}
QStringList FileApiParser::cmakeQueryFilePaths() const
{
QDir queryDir(QDir::cleanPath(m_sourceDirectory.toString() + "/"
+ QString::fromLatin1(CMAKE_RELATIVE_QUERY_PATH)));
return transform(cmakeQueryFileNames(),
[&queryDir](const QString &name) { return queryDir.absoluteFilePath(name); });
}
void FileApiParser::replyDirectoryHasChanged(const QString &directory) const
{
if (directory == cmakeReplyDirectory().toString()) {