diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index b66ebb70c6a392d85b1f3be4b68577b258bcbaae..d1fe107412d1fabe852164591d65a1fd1745d2d5 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -506,6 +506,10 @@ void CMakeProject::restoreSettingsImpl(ProjectExplorer::PersistentSettingsReader if (!copw.buildDirectory().isEmpty()) setValue("all", "buildDirectory", copw.buildDirectory()); //TODO save arguments somewhere copw.arguments() + + MakeStep *cleanMakeStep = new MakeStep(this); + insertCleanStep(0, cleanMakeStep); + cleanMakeStep->setValue("clean", true); } else { // We have a user file, but we could still be missing the cbp file // TODO check that we have a cbp file and if not, open up a dialog ? diff --git a/src/plugins/cmakeprojectmanager/makestep.cpp b/src/plugins/cmakeprojectmanager/makestep.cpp index 83e433c0ca65a0d6dd33860af7ee4f09bffa02ad..8209f3fc48d32e6ef4f5d99889a698b99f94b686 100644 --- a/src/plugins/cmakeprojectmanager/makestep.cpp +++ b/src/plugins/cmakeprojectmanager/makestep.cpp @@ -99,10 +99,14 @@ bool MakeStep::init(const QString &buildConfiguration) setCommand(buildConfiguration, "make"); // TODO give full path here? #endif // Q_OS_WIN - QStringList arguments = value(buildConfiguration, "buildTargets").toStringList(); - arguments << additionalArguments(buildConfiguration); - setArguments(buildConfiguration, arguments); // TODO - setEnvironment(buildConfiguration, m_pro->environment(buildConfiguration)); + if (value("clean").isValid() && value("clean").toBool()) { + setArguments(buildConfiguration, QStringList() << "clean"); + } else { + QStringList arguments = value(buildConfiguration, "buildTargets").toStringList(); + arguments << additionalArguments(buildConfiguration); + setArguments(buildConfiguration, arguments); // TODO + setEnvironment(buildConfiguration, m_pro->environment(buildConfiguration)); + } return AbstractProcessStep::init(buildConfiguration); }