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>
This commit is contained in:
Marcus Tillmanns
2022-10-20 15:35:38 +02:00
parent 91257b3e76
commit 38c8e20071
3 changed files with 4 additions and 1 deletions

View File

@@ -116,6 +116,7 @@ public:
signals:
void environmentChanged();
void buildDirectoryInitialized();
void buildDirectoryChanged();
void enabledChanged();
void buildTypeChanged();

View File

@@ -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,

View File

@@ -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;
}