diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp index 9f175a635fb..3d9d4808c5a 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp @@ -26,6 +26,7 @@ #include "cmakebuildsystem.h" #include "cmakebuildconfiguration.h" +#include "cmakekitinformation.h" #include "cmakeproject.h" #include "cmakeprojectconstants.h" #include "cmakeprojectnodes.h" @@ -204,10 +205,13 @@ CMakeBuildSystem::CMakeBuildSystem(CMakeBuildConfiguration *bc) connect(project(), &Project::projectFileIsDirty, this, [this]() { if (m_buildConfiguration->isActive()) { - qCDebug(cmakeBuildSystemLog) << "Requesting parse due to dirty project file"; - m_buildDirManager - .setParametersAndRequestParse(BuildDirParameters(m_buildConfiguration), - BuildDirManager::REPARSE_DEFAULT); + const auto cmake = CMakeKitAspect::cmakeTool(m_buildConfiguration->target()->kit()); + if (cmake && cmake->isAutoRun()) { + qCDebug(cmakeBuildSystemLog) << "Requesting parse due to dirty project file"; + m_buildDirManager.setParametersAndRequestParse(BuildDirParameters( + m_buildConfiguration), + BuildDirManager::REPARSE_DEFAULT); + } } }); diff --git a/src/plugins/cmakeprojectmanager/fileapireader.cpp b/src/plugins/cmakeprojectmanager/fileapireader.cpp index 13c90abf7c2..83a81f2a70e 100644 --- a/src/plugins/cmakeprojectmanager/fileapireader.cpp +++ b/src/plugins/cmakeprojectmanager/fileapireader.cpp @@ -63,18 +63,7 @@ using namespace FileApiDetails; // FileApiReader: // -------------------------------------------------------------------- -FileApiReader::FileApiReader() -{ - connect(Core::EditorManager::instance(), - &Core::EditorManager::aboutToSave, - this, - [this](const Core::IDocument *document) { - if (m_cmakeFiles.contains(document->filePath())) { - qCDebug(cmakeFileApiMode) << "FileApiReader: DIRTY SIGNAL"; - emit dirty(); - } - }); -} +FileApiReader::FileApiReader() {} FileApiReader::~FileApiReader() { diff --git a/src/plugins/cmakeprojectmanager/servermodereader.cpp b/src/plugins/cmakeprojectmanager/servermodereader.cpp index 72c85bf271c..f86081bd382 100644 --- a/src/plugins/cmakeprojectmanager/servermodereader.cpp +++ b/src/plugins/cmakeprojectmanager/servermodereader.cpp @@ -73,12 +73,6 @@ const int MAX_PROGRESS = 1400; ServerModeReader::ServerModeReader() { - connect(Core::EditorManager::instance(), &Core::EditorManager::aboutToSave, - this, [this](const Core::IDocument *document) { - if (m_cmakeFiles.contains(document->filePath())) - emit dirty(); - }); - connect(&m_parser, &CMakeParser::addOutput, this, [](const QString &m) { Core::MessageManager::write(m); }); connect(&m_parser, &CMakeParser::addTask, this, [this](const Task &t) { @@ -466,10 +460,9 @@ void ServerModeReader::handleProgress(int min, int cur, int max, const QString & void ServerModeReader::handleSignal(const QString &signal, const QVariantMap &data) { + Q_UNUSED(signal) Q_UNUSED(data) - // CMake on Windows sends false dirty signals on each edit (QTCREATORBUG-17944) - if (!HostOsInfo::isWindowsHost() && signal == "dirty") - emit dirty(); + // We do not need to act on fileChanged signals nor on dirty signals! } void ServerModeReader::handleServerConnected()