diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp index aacd273f63e..1e0c4594ceb 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp @@ -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(¶m); param.setCommandLine(cmakeCommand());