From 751cfa7bc382997535ead9435b0f9ea815a41cf5 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Fri, 12 Jul 2024 11:06:49 +0200 Subject: [PATCH] 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 --- src/plugins/cmakeprojectmanager/cmakebuildstep.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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());