From 1b3a4e1fc65ba39682912aee5d94cd30e5b9c84c Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Tue, 8 Jun 2021 10:27:53 +0200 Subject: CMakePM: Clear and setup file watcher before and after backup configuration Qt Creator 4.15 will do a backup of the CMake file-api, but the file watcher that triggers a reparsing was not cleared up before the backup. This could lead to unnecesary file-api rescans. Task-number: QTCREATORBUG-25783 Change-Id: Id91379ea85c8a91e03d952c5c66b0371ebff943f Reviewed-by: Eike Ziller --- src/plugins/cmakeprojectmanager/fileapireader.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/plugins/cmakeprojectmanager/fileapireader.cpp b/src/plugins/cmakeprojectmanager/fileapireader.cpp index 1171b9d548..a4a2471073 100644 --- a/src/plugins/cmakeprojectmanager/fileapireader.cpp +++ b/src/plugins/cmakeprojectmanager/fileapireader.cpp @@ -371,6 +371,10 @@ void FileApiReader::startCMakeState(const QStringList &configurationArguments) connect(m_cmakeProcess.get(), &CMakeProcess::finished, this, &FileApiReader::cmakeFinishedState); qCDebug(cmakeFileApiMode) << ">>>>>> Running cmake with arguments:" << configurationArguments; + // Reset watcher: + m_watcher.removeFiles(m_watcher.files()); + m_watcher.removeDirectories(m_watcher.directories()); + makeBackupConfiguration(true); writeConfigurationIntoBuildDirectory(configurationArguments); m_cmakeProcess->run(m_parameters, configurationArguments); @@ -389,6 +393,8 @@ void FileApiReader::cmakeFinishedState(int code, QProcess::ExitStatus status) if (m_lastCMakeExitCode != 0) makeBackupConfiguration(false); + FileApiParser::setupCMakeFileApi(m_parameters.workDirectory, m_watcher); + endState(FileApiParser::scanForCMakeReplyFile(m_parameters.workDirectory)); } -- cgit v1.2.1