diff --git a/src/plugins/cmakeprojectmanager/fileapiparser.cpp b/src/plugins/cmakeprojectmanager/fileapiparser.cpp index 96fb2b6ee29..5b299bb188f 100644 --- a/src/plugins/cmakeprojectmanager/fileapiparser.cpp +++ b/src/plugins/cmakeprojectmanager/fileapiparser.cpp @@ -35,7 +35,7 @@ const QStringList CMAKE_QUERY_FILENAMES = {"cache-v2", "codemodel-v2", "cmakeFil // Helper: // -------------------------------------------------------------------- -static FilePath cmakeReplyDirectory(const FilePath &buildDirectory) +FilePath FileApiParser::cmakeReplyDirectory(const FilePath &buildDirectory) { return buildDirectory.pathAppended(CMAKE_RELATIVE_REPLY_PATH); } @@ -795,7 +795,7 @@ FilePath FileApiDetails::ReplyFileContents::jsonFile(const QString &kind, const // FileApi: // -------------------------------------------------------------------- -bool FileApiParser::setupCMakeFileApi(const FilePath &buildDirectory, Utils::FileSystemWatcher &watcher) +bool FileApiParser::setupCMakeFileApi(const FilePath &buildDirectory) { // So that we have a directory to watch. buildDirectory.pathAppended(CMAKE_RELATIVE_REPLY_PATH).ensureWritableDir(); @@ -818,7 +818,6 @@ bool FileApiParser::setupCMakeFileApi(const FilePath &buildDirectory, Utils::Fil } } - watcher.addDirectory(cmakeReplyDirectory(buildDirectory).path(), FileSystemWatcher::WatchAllChanges); return true; } diff --git a/src/plugins/cmakeprojectmanager/fileapiparser.h b/src/plugins/cmakeprojectmanager/fileapiparser.h index 1d7c5d5ab3f..f6b54968660 100644 --- a/src/plugins/cmakeprojectmanager/fileapiparser.h +++ b/src/plugins/cmakeprojectmanager/fileapiparser.h @@ -227,9 +227,9 @@ public: const QString &cmakeBuildType, QString &errorMessage); - static bool setupCMakeFileApi(const Utils::FilePath &buildDirectory, - Utils::FileSystemWatcher &watcher); + static bool setupCMakeFileApi(const Utils::FilePath &buildDirectory); + static Utils::FilePath cmakeReplyDirectory(const Utils::FilePath &buildDirectory); static Utils::FilePaths cmakeQueryFilePaths(const Utils::FilePath &buildDirectory); static Utils::FilePath scanForCMakeReplyFile(const Utils::FilePath &buildDirectory); diff --git a/src/plugins/cmakeprojectmanager/fileapireader.cpp b/src/plugins/cmakeprojectmanager/fileapireader.cpp index fd507f7bf71..24e2fc94fcc 100644 --- a/src/plugins/cmakeprojectmanager/fileapireader.cpp +++ b/src/plugins/cmakeprojectmanager/fileapireader.cpp @@ -59,7 +59,7 @@ void FileApiReader::setParameters(const BuildDirParameters &p) // Reset watcher: m_watcher.clear(); - FileApiParser::setupCMakeFileApi(m_parameters.buildDirectory, m_watcher); + FileApiParser::setupCMakeFileApi(m_parameters.buildDirectory); resetData(); } @@ -361,7 +361,10 @@ void FileApiReader::cmakeFinishedState(int exitCode) if (m_lastCMakeExitCode != 0) makeBackupConfiguration(false); - FileApiParser::setupCMakeFileApi(m_parameters.buildDirectory, m_watcher); + FileApiParser::setupCMakeFileApi(m_parameters.buildDirectory); + + m_watcher.addDirectory(FileApiParser::cmakeReplyDirectory(m_parameters.buildDirectory).path(), + FileSystemWatcher::WatchAllChanges); endState(FileApiParser::scanForCMakeReplyFile(m_parameters.buildDirectory), m_lastCMakeExitCode != 0);