From bfec40f01178af045e2963b6b9a09d83d59c530e Mon Sep 17 00:00:00 2001 From: David Daoust Date: Tue, 14 Feb 2006 17:54:02 +0000 Subject: [PATCH] Defect 62772. Suppressed the make clean from happening on rebuild events. Works correctly for the standard build, but the managed build still programatically cleans the project. In the long run all builds should call "make all" and the explicit clean event should call "make clean". The managed makefiles will need to be enhanced so that they can never get "out-of-sync" with the source. --- .../cdt/make/core/IMakeBuilderInfo.java | 3 +-- .../cdt/make/core/MakeProjectNature.java | 5 ++-- .../make/internal/core/BuildInfoFactory.java | 13 ++++------ .../cdt/make/internal/core/MakeTarget.java | 1 - .../internal/core/PreferenceInitializer.java | 3 +-- .../make/internal/ui/MakeResources.properties | 2 -- .../cdt/make/ui/dialogs/SettingsBlock.java | 25 +++---------------- .../core/GeneratedMakefileBuilder.java | 8 +----- .../internal/core/PluginResources.properties | 3 +-- 9 files changed, 14 insertions(+), 49 deletions(-) diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeBuilderInfo.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeBuilderInfo.java index 848cd8970a3..80a8a45c2f5 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeBuilderInfo.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeBuilderInfo.java @@ -14,8 +14,7 @@ import org.eclipse.core.runtime.CoreException; public interface IMakeBuilderInfo extends IMakeCommonBuildInfo { - public final static String BUILD_TARGET_FULL = ARGS_PREFIX + ".build.target.full"; //$NON-NLS-1$ - public final static String BUILD_TARGET_INCREAMENTAL = ARGS_PREFIX + ".build.target.inc"; //$NON-NLS-1$ + public final static String BUILD_TARGET_INCREMENTAL = ARGS_PREFIX + ".build.target.inc"; //$NON-NLS-1$ public final static String BUILD_TARGET_AUTO = ARGS_PREFIX + ".build.target.auto"; //$NON-NLS-1$ public final static String BUILD_TARGET_CLEAN = ARGS_PREFIX + ".build.target.clean"; //$NON-NLS-1$ diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeProjectNature.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeProjectNature.java index a7881a5ce74..05807740aaf 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeProjectNature.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeProjectNature.java @@ -140,10 +140,9 @@ public class MakeProjectNature implements IProjectNature { projectInfo.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_AUTO, info.getBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_AUTO, "")); //$NON-NLS-1$ projectInfo.setIncrementalBuildEnable(info.isIncrementalBuildEnabled()); - projectInfo.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_INCREAMENTAL, info.getBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_INCREAMENTAL, "")); //$NON-NLS-1$ + projectInfo.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_INCREMENTAL, info.getBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_INCREMENTAL, "")); //$NON-NLS-1$ - projectInfo.setFullBuildEnable(info.isFullBuildEnabled()); - projectInfo.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_FULL, info.getBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_FULL, "")); //$NON-NLS-1$ + projectInfo.setFullBuildEnable(info.isIncrementalBuildEnabled()); projectInfo.setCleanBuildEnable(info.isCleanBuildEnabled()); projectInfo.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_CLEAN, info.getBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_CLEAN, "")); //$NON-NLS-1$ diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java index bf688538f76..4d03ccdac31 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java @@ -88,9 +88,7 @@ public class BuildInfoFactory { value = getString(BuildInfoFactory.BUILD_TARGET_AUTO); } else if (IMakeBuilderInfo.BUILD_TARGET_CLEAN.equals(name)) { value = getString(BuildInfoFactory.BUILD_TARGET_CLEAN); - } else if (IMakeBuilderInfo.BUILD_TARGET_FULL.equals(name)) { - value = getString(BuildInfoFactory.BUILD_TARGET_FULL); - } else if (IMakeBuilderInfo.BUILD_TARGET_INCREAMENTAL.equals(name)) { + } else if (IMakeBuilderInfo.BUILD_TARGET_INCREMENTAL.equals(name)) { value = getString(BuildInfoFactory.BUILD_TARGET_INCREMENTAL); } } @@ -222,12 +220,12 @@ public class BuildInfoFactory { } public void setIncrementalBuildTarget(String target) throws CoreException { - putString(IMakeBuilderInfo.BUILD_TARGET_INCREAMENTAL, null); + putString(IMakeBuilderInfo.BUILD_TARGET_INCREMENTAL, null); putString(BuildInfoFactory.BUILD_TARGET_INCREMENTAL, target); } public String getIncrementalBuildTarget() { - String result = getBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_INCREAMENTAL, + String result = getBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_INCREMENTAL, getString(BuildInfoFactory.BUILD_TARGET_INCREMENTAL)); try { result = VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(result, false); @@ -237,12 +235,11 @@ public class BuildInfoFactory { } public void setFullBuildTarget(String target) throws CoreException { - putString(IMakeBuilderInfo.BUILD_TARGET_FULL, null); - putString(BuildInfoFactory.BUILD_TARGET_FULL, target); + } public String getFullBuildTarget() { - String result = getBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_FULL, getString(BuildInfoFactory.BUILD_TARGET_FULL)); + String result = getBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_INCREMENTAL, getString(BuildInfoFactory.BUILD_TARGET_INCREMENTAL)); try { result = VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(result, false); } catch (CoreException e) { diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java index 143526323aa..fa14bb2e38e 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java @@ -288,7 +288,6 @@ public class MakeTarget extends PlatformObject implements IMakeTarget { info.setUseDefaultBuildCmd(isDefaultBuildCmd()); info.setStopOnError(isStopOnError()); info.setFullBuildEnable(true); - info.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_FULL, getBuildAttribute(IMakeTarget.BUILD_TARGET, "")); //$NON-NLS-1$ info.setEnvironment(getExpandedEnvironment()); info.setAppendEnvironment(appendEnvironment()); if (container != null) { diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/PreferenceInitializer.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/PreferenceInitializer.java index 7717cb17654..33c03ba2051 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/PreferenceInitializer.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/PreferenceInitializer.java @@ -39,9 +39,8 @@ public class PreferenceInitializer extends AbstractPreferenceInitializer { info.setAutoBuildEnable(false); info.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_AUTO, "all"); //$NON-NLS-1$ info.setIncrementalBuildEnable(true); - info.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_INCREAMENTAL, "all"); //$NON-NLS-1$ + info.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_INCREMENTAL, "all"); //$NON-NLS-1$ info.setFullBuildEnable(true); - info.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_FULL, "clean all"); //$NON-NLS-1$ info.setCleanBuildEnable(true); info.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_CLEAN, "clean"); //$NON-NLS-1$ info.setAppendEnvironment(true); diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/MakeResources.properties b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/MakeResources.properties index 35d3059b26e..adcd5832df9 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/MakeResources.properties +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/MakeResources.properties @@ -75,11 +75,9 @@ SettingsBlock.makeWorkbench.auto=Build on resource save (Auto Build) SettingsBlock.makeWorkbench.note=Note: SettingsBlock.makeWorkbench.autobuildMessage=See Workbench automatic build preference. SettingsBlock.makeWorkbench.incremental=Build (Incremental Build) -SettingsBlock.makeWorkbench.full=Rebuild (Full Build) SettingsBlock.makeWorkbench.clean=Clean SettingsBlock.makeWorkbench.autoBuildTarget=Auto Build Target SettingsBlock.makeWorkbench.incrementalBuildTarget=Incremental Build Target -SettingsBlock.makeWorkbench.fullBuildTarget=Full Build Target SettingsBlock.makeWorkbench.cleanTarget=Clean Target SettingsBlock.variables=Variables... TargetBlock.target.group_label=Target diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/SettingsBlock.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/SettingsBlock.java index 846193a09a2..cd3566e2d2f 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/SettingsBlock.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/SettingsBlock.java @@ -88,17 +88,14 @@ public class SettingsBlock extends AbstractCOptionPage { Text buildLocation; Button locationVariablesButton; - Text targetFull; Text targetIncr; Text targetAuto; Text targetClean; - Button fullButton; Button incrButton; Button autoButton; Button cleanButton; - Button fullVariableButton; Button incrVariableButton; Button autoVariableButton; Button cleanVariableButton; @@ -189,8 +186,6 @@ public class SettingsBlock extends AbstractCOptionPage { public void widgetSelected(SelectionEvent e) { targetAuto.setEnabled(autoButton.getSelection()); autoVariableButton.setEnabled(autoButton.getSelection()); - targetFull.setEnabled(fullButton.getSelection()); - fullVariableButton.setEnabled(fullButton.getSelection()); targetIncr.setEnabled(incrButton.getSelection()); incrVariableButton.setEnabled(incrButton.getSelection()); targetClean.setEnabled(cleanButton.getSelection()); @@ -231,20 +226,11 @@ public class SettingsBlock extends AbstractCOptionPage { incrButton.addSelectionListener(selectionAdapter); incrButton.setSelection(fBuildInfo.isIncrementalBuildEnabled()); targetIncr = ControlFactory.createTextField(group, SWT.SINGLE | SWT.BORDER); - targetIncr.setText(fBuildInfo.getBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_INCREAMENTAL, "")); //$NON-NLS-1$ + targetIncr.setText(fBuildInfo.getBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_INCREMENTAL, "")); //$NON-NLS-1$ ((GridData) (targetIncr.getLayoutData())).horizontalAlignment = GridData.FILL; ((GridData) (targetIncr.getLayoutData())).grabExcessHorizontalSpace = true; addControlAccessibleListener(targetIncr, MakeUIPlugin.getResourceString(MAKE_BUILD_INCREMENTAL_TARGET)); incrVariableButton = addVariablesButton(group, targetIncr); - fullButton = ControlFactory.createCheckBox(group, MakeUIPlugin.getResourceString(MAKE_WORKBENCH_BUILD_FULL)); - fullButton.addSelectionListener(selectionAdapter); - fullButton.setSelection(fBuildInfo.isFullBuildEnabled()); - targetFull = ControlFactory.createTextField(group, SWT.SINGLE | SWT.BORDER); - targetFull.setText(fBuildInfo.getBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_FULL, "")); //$NON-NLS-1$ - ((GridData) (targetFull.getLayoutData())).horizontalAlignment = GridData.FILL; - ((GridData) (targetFull.getLayoutData())).grabExcessHorizontalSpace = true; - addControlAccessibleListener(targetFull, MakeUIPlugin.getResourceString(MAKE_BUILD_FULL_TARGET)); - fullVariableButton = addVariablesButton(group, targetFull); cleanButton = ControlFactory.createCheckBox(group, MakeUIPlugin.getResourceString(MAKE_WORKBENCH_BUILD_CLEAN)); cleanButton.addSelectionListener(selectionAdapter); cleanButton.setSelection(fBuildInfo.isCleanBuildEnabled()); @@ -468,9 +454,8 @@ public class SettingsBlock extends AbstractCOptionPage { info.setAutoBuildEnable(autoButton.getSelection()); info.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_AUTO, targetAuto.getText().trim()); info.setIncrementalBuildEnable(incrButton.getSelection()); - info.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_INCREAMENTAL, targetIncr.getText().trim()); - info.setFullBuildEnable(fullButton.getSelection()); - info.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_FULL, targetFull.getText().trim()); + info.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_INCREMENTAL, targetIncr.getText().trim()); + info.setFullBuildEnable(incrButton.getSelection()); info.setCleanBuildEnable(cleanButton.getSelection()); info.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_CLEAN, targetClean.getText().trim()); if (buildLocation != null) { @@ -531,10 +516,6 @@ public class SettingsBlock extends AbstractCOptionPage { incrVariableButton.setEnabled(info.isIncrementalBuildEnabled()); targetIncr.setText(info.getIncrementalBuildTarget()); targetIncr.setEnabled(info.isIncrementalBuildEnabled()); - fullButton.setSelection(info.isFullBuildEnabled()); - fullVariableButton.setEnabled(info.isFullBuildEnabled()); - targetFull.setText(info.getFullBuildTarget()); - targetFull.setEnabled(info.isFullBuildEnabled()); cleanButton.setSelection(info.isCleanBuildEnabled()); cleanVariableButton.setEnabled(info.isCleanBuildEnabled()); targetClean.setText(info.getCleanBuildTarget()); diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java index e1a13491467..2eaf2707108 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java @@ -219,7 +219,6 @@ public class GeneratedMakefileBuilder extends ACBuilder { private static final String TRACE_FOOTER = "]: "; //$NON-NLS-1$ private static final String TRACE_HEADER = "GeneratedmakefileBuilder trace ["; //$NON-NLS-1$ private static final String TYPE_CLEAN = "ManagedMakeBuilder.type.clean"; //$NON-NLS-1$ - private static final String TYPE_FULL = "ManagedMakeBuilder.type.full"; //$NON-NLS-1$ private static final String TYPE_INC = "ManagedMakeBuider.type.incremental"; //$NON-NLS-1$ private static final String WARNING_UNSUPPORTED_CONFIGURATION = "ManagedMakeBuilder.warning.unsupported.configuration"; //$NON-NLS-1$ public static boolean VERBOSE = false; @@ -276,9 +275,7 @@ public class GeneratedMakefileBuilder extends ACBuilder { ConsoleOutputStream consoleOutStream = console.getOutputStream(); // Report a successful clean String[] consoleHeader = new String[3]; - if (buildType == FULL_BUILD) { - consoleHeader[0] = ManagedMakeMessages.getResourceString(TYPE_FULL); - } else if (buildType == INCREMENTAL_BUILD) { + if (buildType == FULL_BUILD || buildType == INCREMENTAL_BUILD) { consoleHeader[0] = ManagedMakeMessages.getResourceString(TYPE_INC); } else { consoleHeader[0] = new String(); @@ -595,7 +592,6 @@ public class GeneratedMakefileBuilder extends ACBuilder { args.add("clean"); //$NON-NLS-1$ break; case FULL_BUILD: - args.add("clean"); //$NON-NLS-1$ case INCREMENTAL_BUILD: args.add("all"); //$NON-NLS-1$ break; @@ -749,8 +745,6 @@ public class GeneratedMakefileBuilder extends ACBuilder { String[] consoleHeader = new String[3]; switch (buildType) { case FULL_BUILD: - consoleHeader[0] = ManagedMakeMessages.getResourceString(TYPE_FULL); - break; case INCREMENTAL_BUILD: consoleHeader[0] = ManagedMakeMessages.getResourceString(TYPE_INC); break; diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/PluginResources.properties b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/PluginResources.properties index bb16433372e..e82f0fee629 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/PluginResources.properties +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/PluginResources.properties @@ -27,8 +27,7 @@ ManagedMakeBuilder.message.finished = Build complete for project {0} ManagedMakeBuilder.message.clean.deleting.output=Removing build artifacts from {0} ManagedMakeBuilder.message.clean.build.clean=Trying a make clean in {0} ManagedMakeBuilder.type.clean = Clean-only build -ManagedMakeBuilder.type.full = Full rebuild -ManagedMakeBuider.type.incremental = Incremental build +ManagedMakeBuider.type.incremental = Build ManagedMakeBuilder.warning.unsupported.configuration=**** WARNING: The "{0}" Configuration may not build ****\n**** because it uses the "{1}" ****\n**** tool-chain that is unsupported on this system. ****\n\n**** Attempting to build... **** # Option exception messages