cmakeprojectmanager: save files before build

This code path (CMakeBuildSystem::buildCMakeTarget) is taken
when building a specific target, such as when activating
Build > Build for Run Configuration. Building via e.g. Ctrl+B
takes a different code path, so this shouldn't be called more
than necessary.

Fixes: QTCREATORBUG-25276
Change-Id: I362bafda43460eaeac9cbf0f053bf457a76702f1
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
Mitch Curtis
2021-01-27 17:28:55 +01:00
committed by Cristian Adam
parent 48422187fc
commit b5ff180f8c

View File

@@ -43,6 +43,7 @@
#include <cpptools/cpptoolsconstants.h> #include <cpptools/cpptoolsconstants.h>
#include <cpptools/generatedcodemodelsupport.h> #include <cpptools/generatedcodemodelsupport.h>
#include <projectexplorer/kitinformation.h> #include <projectexplorer/kitinformation.h>
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/session.h> #include <projectexplorer/session.h>
#include <projectexplorer/target.h> #include <projectexplorer/target.h>
@@ -454,7 +455,8 @@ void CMakeBuildSystem::runCMakeWithExtraArguments()
void CMakeBuildSystem::buildCMakeTarget(const QString &buildTarget) void CMakeBuildSystem::buildCMakeTarget(const QString &buildTarget)
{ {
QTC_ASSERT(!buildTarget.isEmpty(), return); QTC_ASSERT(!buildTarget.isEmpty(), return);
cmakeBuildConfiguration()->buildTarget(buildTarget); if (ProjectExplorerPlugin::saveModifiedFiles())
cmakeBuildConfiguration()->buildTarget(buildTarget);
} }
void CMakeBuildSystem::handleTreeScanningFinished() void CMakeBuildSystem::handleTreeScanningFinished()