CMakePM: Do not allow staging dir setting for clean build step

CMake will fail with an error for the "--target clean install"
combination.

Change-Id: I6de31539a3ead57bbcde5ce9905a22c9aeb3fd12
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
Cristian Adam
2024-07-12 11:06:49 +02:00
parent 5181f6e37b
commit 751cfa7bc3

View File

@@ -226,7 +226,8 @@ CMakeBuildStep::CMakeBuildStep(BuildStepList *bsl, Id id) :
useStaging.setSettingsKey(USE_STAGING_KEY);
useStaging.setLabel(Tr::tr("Stage for installation"), BoolAspect::LabelPlacement::AtCheckBox);
useStaging.setDefaultValue(supportsStageForInstallation(kit()));
useStaging.setDefaultValue(supportsStageForInstallation(kit()) && !isCleanStep());
useStaging.setEnabled(!isCleanStep());
stagingDir.setSettingsKey(STAGING_DIR_KEY);
stagingDir.setLabelText(Tr::tr("Staging directory:"));
@@ -522,6 +523,11 @@ void CMakeBuildStep::setBuildPreset(const QString &preset)
QWidget *CMakeBuildStep::createConfigWidget()
{
auto updateDetails = [this] {
const bool haveCleanTarget = m_buildTargets.contains(cleanTarget());
useStaging.setEnabled(!haveCleanTarget);
if (useStaging() && haveCleanTarget)
useStaging.setValue(false);
ProcessParameters param;
setupProcessParameters(&param);
param.setCommandLine(cmakeCommand());