diff options
author | Marcus Tillmanns <marcus.tillmanns@qt.io> | 2022-10-20 15:35:38 +0200 |
---|---|---|
committer | Marcus Tillmanns <marcus.tillmanns@qt.io> | 2022-10-26 11:47:49 +0000 |
commit | 38c8e200710eb1c452705f2451e4f6260b3309fa (patch) | |
tree | 87a13ec8b5a9a6aeb1628df9730b34ad385d29c9 /src | |
parent | 91257b3e760f925ef25ae675beac7a6fe8a3f740 (diff) | |
download | qt-creator-38c8e200710eb1c452705f2451e4f6260b3309fa.tar.gz |
QMake: Remove unnecessary build dir changed
Previously every time a qmake project was built, the
"buildDirectoryChanged()" was emitted, leading to a complete
reparse of the project file, tests, qml files and qml imports.
To keep "QmakeBuildConfiguration::updateProblemLabel" be called,
we re-introduce the "buildDirectoryInitialized" signal.
Task-number: QTCREATORBUG-27785
Change-Id: I32d881eacb8cf26050c33da643c74c2cab4dc22d
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/projectexplorer/buildconfiguration.h | 1 | ||||
-rw-r--r-- | src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp | 2 | ||||
-rw-r--r-- | src/plugins/qmakeprojectmanager/qmakestep.cpp | 2 |
3 files changed, 4 insertions, 1 deletions
diff --git a/src/plugins/projectexplorer/buildconfiguration.h b/src/plugins/projectexplorer/buildconfiguration.h index 59649e5def..815daeda6b 100644 --- a/src/plugins/projectexplorer/buildconfiguration.h +++ b/src/plugins/projectexplorer/buildconfiguration.h @@ -116,6 +116,7 @@ public: signals: void environmentChanged(); + void buildDirectoryInitialized(); void buildDirectoryChanged(); void enabledChanged(); void buildTypeChanged(); diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp index 899ed4e4a4..c1cb54d3e1 100644 --- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp +++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp @@ -153,6 +153,8 @@ QmakeBuildConfiguration::QmakeBuildConfiguration(Target *target, Id id) }); buildDirectoryAspect()->allowInSourceBuilds(target->project()->projectDirectory()); + connect(this, &BuildConfiguration::buildDirectoryInitialized, + this, &QmakeBuildConfiguration::updateProblemLabel); connect(this, &BuildConfiguration::buildDirectoryChanged, this, &QmakeBuildConfiguration::updateProblemLabel); connect(this, &QmakeBuildConfiguration::qmakeBuildConfigurationChanged, diff --git a/src/plugins/qmakeprojectmanager/qmakestep.cpp b/src/plugins/qmakeprojectmanager/qmakestep.cpp index f29e0abb64..0a075eb323 100644 --- a/src/plugins/qmakeprojectmanager/qmakestep.cpp +++ b/src/plugins/qmakeprojectmanager/qmakestep.cpp @@ -306,7 +306,7 @@ bool QMakeStep::processSucceeded(int exitCode, QProcess::ExitStatus status) bool result = AbstractProcessStep::processSucceeded(exitCode, status); if (!result) m_needToRunQMake = true; - emit buildConfiguration()->buildDirectoryChanged(); + emit buildConfiguration()->buildDirectoryInitialized(); return result; } |