diff --git a/build/org.eclipse.cdt.managedbuilder.core/ChangeLog b/build/org.eclipse.cdt.managedbuilder.core/ChangeLog
index 55e3d673bab..22ec15c7bfa 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/ChangeLog
+++ b/build/org.eclipse.cdt.managedbuilder.core/ChangeLog
@@ -1,3 +1,13 @@
+2003-09-23 Sean Evoy
+ All the work in this patch is for critical bug 43292. In order to manage
+ configurations, there had to be a method through ITarget to remove
+ configurations. Also, to support the naming of newly created configurations,
+ I added a name method to the IConfiguration interface. Finally, the ITarget
+ needed to support setting (and resetting) the make command to use when building.
+ * src/org/eclipse/cdt/managedbuilder/core/IConfiguration.java
+ * src/org/eclipse/cdt/managedbuilder/core/ITarget.java
+ * src/org/eclipse/cdt/managedbuilder/internal/core/Target.java
+
2003-09-19 Sean Evoy
Added a new field to the target specification in the build model to
hard-code the binary parser for project creation. There is a new getter
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IConfiguration.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IConfiguration.java
index 24478ebd8e9..840b3d80e49 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IConfiguration.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IConfiguration.java
@@ -45,6 +45,13 @@ public interface IConfiguration extends IBuildObject {
*/
public ITool[] getTools();
+ /**
+ * Sets the name of the receiver to the value specified in the argument
+ *
+ * @param name
+ */
+ public void setName(String name);
+
/**
* Sets the value of a boolean option for this configuration.
*
@@ -72,4 +79,5 @@ public interface IConfiguration extends IBuildObject {
*/
public void setOption(IOption option, String[] value)
throws BuildException;
+
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITarget.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITarget.java
index 4f7f11be028..010a97db574 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITarget.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITarget.java
@@ -33,8 +33,8 @@ public interface ITarget extends IBuildObject {
* change in the parent, unoverridden values are updated in the child
* config as well.
*
- * @param parent
- * @param id
+ * @param parent The IConfiguration to use as a settings template
+ * @param id The unique id the new configuration will have
* @return
*/
public IConfiguration createConfiguration(IConfiguration parent, String id);
@@ -91,7 +91,7 @@ public interface ITarget extends IBuildObject {
public String getMakeCommand();
/**
- * Returns the configuration with the given id, or null if not found.
+ * Returns the configuration with the given id, or null if not found.
*
* @param id
* @return
@@ -118,6 +118,15 @@ public interface ITarget extends IBuildObject {
*/
public ITool[] getTools();
+
+ /**
+ * Answers true if the receiver has a make command that differs from its
+ * parent specification.
+ *
+ * @return
+ */
+ public boolean hasOverridenMakeCommand();
+
/**
* Returns whether this target is abstract.
* @return
@@ -133,13 +142,32 @@ public interface ITarget extends IBuildObject {
*/
public boolean isTestTarget();
+ /**
+ * Removes the configuration with the ID specified in the argument.
+ *
+ * @param id
+ */
+ public void removeConfiguration(String id);
+
+ /**
+ * Resets the make command in the receiver to the value specified in
+ * its parent.
+ *
+ */
+ public void resetMakeCommand();
+
/**
* Set the name of the artifact that will be produced when the receiver
* is built.
*
- * @param name The name of the build artifact.
+ * @param name
*/
public void setBuildArtifact(String name);
-
+ /**
+ * Sets the make command for the receiver to the value in the argument.
+ *
+ * @param command
+ */
+ public void setMakeCommand(String command);
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Target.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Target.java
index 27b51690f84..a40912c2b60 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Target.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Target.java
@@ -1,3 +1,5 @@
+package org.eclipse.cdt.managedbuilder.internal.core;
+
/**********************************************************************
* Copyright (c) 2003 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
@@ -8,10 +10,10 @@
* Contributors:
* IBM - Initial API and implementation
**********************************************************************/
-package org.eclipse.cdt.managedbuilder.internal.core;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -26,11 +28,9 @@ import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-/**
- *
- */
public class Target extends BuildObject implements ITarget {
+ // Build model elements that come from the plugin or project files
private String artifactName;
private String binaryParserId;
private String cleanCommand;
@@ -71,7 +71,6 @@ public class Target extends BuildObject implements ITarget {
this.defaultExtension = parent.getDefaultExtension();
this.isTest = parent.isTestTarget();
this.cleanCommand = parent.getCleanCommand();
- this.makeCommand = parent.getMakeCommand();
// Hook me up
IManagedBuildInfo buildInfo = ManagedBuildManager.getBuildInfo(owner, true);
@@ -190,7 +189,9 @@ public class Target extends BuildObject implements ITarget {
cleanCommand = element.getAttribute(CLEAN_COMMAND);
// Get the make command
- makeCommand = element.getAttribute(MAKE_COMMAND);
+ if (element.hasAttribute(MAKE_COMMAND)) {
+ makeCommand = element.getAttribute(MAKE_COMMAND);
+ }
Node child = element.getFirstChild();
while (child != null) {
@@ -201,6 +202,29 @@ public class Target extends BuildObject implements ITarget {
}
}
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.core.ITarget#removeConfiguration(java.lang.String)
+ */
+ public void removeConfiguration(String id) {
+ // Remove the specified configuration from the list and map
+ Iterator iter = configurations.listIterator();
+ while (iter.hasNext()) {
+ IConfiguration config = (IConfiguration)iter.next();
+ if (config.getId().equals(id)) {
+ configurations.remove(config);
+ configMap.remove(id);
+ break;
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.core.ITarget#resetMakeCommand()
+ */
+ public void resetMakeCommand() {
+ makeCommand = null;
+ }
+
/**
* Persist receiver to project file.
*
@@ -218,7 +242,9 @@ public class Target extends BuildObject implements ITarget {
element.setAttribute(DEFAULT_EXTENSION, getDefaultExtension());
element.setAttribute(IS_TEST, isTest ? "true" : "false");
element.setAttribute(CLEAN_COMMAND, getCleanCommand());
- element.setAttribute(MAKE_COMMAND, getMakeCommand());
+ if (makeCommand != null) {
+ element.setAttribute(MAKE_COMMAND, makeCommand);
+ }
if (configurations != null)
for (int i = 0; i < configurations.size(); ++i) {
@@ -234,17 +260,26 @@ public class Target extends BuildObject implements ITarget {
*/
public String getMakeCommand() {
// Return the name of the make utility
- return makeCommand == null ? EMPTY_STRING : makeCommand;
+ return (makeCommand == null) ? parent.getMakeCommand() : makeCommand;
}
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.core.IBuildObject#getName()
+ */
public String getName() {
return (name == null && parent != null) ? parent.getName() : name;
}
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.core.ITarget#getParent()
+ */
public ITarget getParent() {
return parent;
}
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.core.ITarget#getOwner()
+ */
public IResource getOwner() {
return owner;
}
@@ -269,12 +304,26 @@ public class Target extends BuildObject implements ITarget {
return n;
}
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.core.ITarget#getTools()
+ */
public ITool[] getTools() {
ITool[] toolArray = new ITool[getNumTools()];
addToolsToArray(toolArray, 0);
return toolArray;
}
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.core.ITarget#hasMakeCommandOverride()
+ */
+ public boolean hasOverridenMakeCommand() {
+ return (makeCommand != null && !makeCommand.equals(parent.getMakeCommand()));
+ }
+
+ /**
+ * @param id
+ * @return
+ */
public ITool getTool(String id) {
ITool result = null;
// See if receiver has it in list
@@ -286,6 +335,9 @@ public class Target extends BuildObject implements ITarget {
return result;
}
+ /**
+ * @param tool
+ */
public void addTool(ITool tool) {
if (tools == null) {
tools = new ArrayList();
@@ -296,6 +348,9 @@ public class Target extends BuildObject implements ITarget {
toolMap.put(tool.getId(), tool);
}
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.core.ITarget#getConfigurations()
+ */
public IConfiguration[] getConfigurations() {
if (configurations != null)
return (IConfiguration[])configurations.toArray(new IConfiguration[configurations.size()]);
@@ -340,6 +395,9 @@ public class Target extends BuildObject implements ITarget {
return (IConfiguration)configMap.get(id);
}
+ /**
+ * @param configuration
+ */
public void addConfiguration(IConfiguration configuration) {
if (configurations == null) {
configurations = new ArrayList();
@@ -381,8 +439,18 @@ public class Target extends BuildObject implements ITarget {
* @see org.eclipse.cdt.core.build.managed.ITarget#setBuildArtifact(java.lang.String)
*/
public void setBuildArtifact(String name) {
- artifactName = name;
+ if (name != null) {
+ artifactName = name;
+ }
}
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.core.ITarget#setMakeCommand(java.lang.String)
+ */
+ public void setMakeCommand(String command) {
+ if (command != null && !getMakeCommand().equals(command)) {
+ makeCommand = command;
+ }
+ }
}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/ChangeLog b/build/org.eclipse.cdt.managedbuilder.ui/ChangeLog
index 7ca161b10ad..98cbb16ca00 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/ChangeLog
+++ b/build/org.eclipse.cdt.managedbuilder.ui/ChangeLog
@@ -1,3 +1,25 @@
+2003-09-23 Sean Evoy
+ I added a fix for critical bug 43439. The new project wizard is ready to be hooked
+ up to the help system content on F1. There is a new file with the string constant
+ the doc project will use to map the widget to a help file.
+ * src/org/eclipse/cdt/managedbuilder/ui/wizards/CProjectPlatformPage.java
+ * src/org/eclipse/cdt/managedbuilder/internal/ui/ManagedBuilderHelpContextIds.java
+
+ In support of the fix for critical bug 43292, I added a new set of widgets to
+ the ManageConfigDialog implementation. I added new string literals in the properties
+ file for the plugin. There are obviously new event handlers for the Manage dialog.
+ It displays the make command for the target, the name of the build artifact, and
+ a list of current and deleted configurations. There is no way to add new targets.
+ Users can restore deleted configurations up until they click OK. The client of this
+ dialog has been changed to properly respond to the changes. The NewConfigurationDialog
+ now displays an externalized string in the title bar.
+ * plugin.xml
+ * plugin.properties
+ * src/org/eclipse/cdt/managedbuilder/internal/ui/PluginResources.properties
+ * src/org/eclipse/cdt/managedbuilder/ui/properties/BuildPropertyPage.java
+ * src/org/eclipse/cdt/managedbuilder/ui/properties/ManageConfigDialog.java
+ * src/org/eclipse/cdt/managedbuilder/ui/properties/NewConfigurationDialog.java
+
2003-09-19 Sean Evoy
Removed the binary parser selection tab from the new class wizard. Updated the
page description externalized string.
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/plugin.properties b/build/org.eclipse.cdt.managedbuilder.ui/plugin.properties
index b8dfd060f59..bff79be6a1e 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/plugin.properties
+++ b/build/org.eclipse.cdt.managedbuilder.ui/plugin.properties
@@ -22,3 +22,7 @@ OptionCategory.Debug=Debugging
OptionCategory.Warn=Warnings
OptionCategory.Misc=Miscellaneous
OptionCategory.Libs=Libraries
+Option.Posix.PreprocOnly=Preprocess only (-E)
+Option.Posix.DefSym=Defined symbols (-D)
+Option.Posix.Libs=Libraries (-l)
+Option.Posix.Libsearch=Library search path (-L)
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/plugin.xml b/build/org.eclipse.cdt.managedbuilder.ui/plugin.xml
index cf08589e7d2..95183810699 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/plugin.xml
+++ b/build/org.eclipse.cdt.managedbuilder.ui/plugin.xml
@@ -96,7 +96,7 @@
-
+
-
+