diff options
author | Sean Evoy | 2004-08-05 14:30:42 +0000 |
---|---|---|
committer | Sean Evoy | 2004-08-05 14:30:42 +0000 |
commit | 39dd636454e8559471c4a86f4a4c0a85b507436b (patch) | |
tree | 83646004a057f3effd07c474980bd533bc037157 /build | |
parent | 172c988cf8d3eba6f968194ea89b55c0dd2b6f5a (diff) | |
download | org.eclipse.cdt-39dd636454e8559471c4a86f4a4c0a85b507436b.tar.gz org.eclipse.cdt-39dd636454e8559471c4a86f4a4c0a85b507436b.tar.xz org.eclipse.cdt-39dd636454e8559471c4a86f4a4c0a85b507436b.zip |
Commit for Leo Treggiari: bugzilla 70577 and 71254.
Diffstat (limited to 'build')
6 files changed, 56 insertions, 5 deletions
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOption.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOption.java index b068228f2b5..09605b5352c 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOption.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOption.java @@ -130,6 +130,13 @@ public interface IOption extends IBuildObject { public String getEnumCommand (String id); /** + * Answers the "name" associated with the enumeration id. + * + * @return + */ + public String getEnumName (String id); + + /** * @param name * @return */ diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java index 76b82b723f4..6469a1cad13 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java @@ -268,6 +268,23 @@ public class Option extends BuildObject implements IOption { } /* (non-Javadoc) + * @see org.eclipse.cdt.core.build.managed.IOption#getEnumName(java.lang.String) + */ + public String getEnumName(String id) { + // Sanity + if (id == null) return EMPTY_STRING; + + // First check for the command in ID->name map + String name = (String) getEnumNameMap().get(id); + if (name == null) { + // This may be a 1.2 project or plugin manifest. If so, the argument is the human readable + // name of the enumeration. + name = id; + } + return name; + } + + /* (non-Javadoc) * A memory-safe accessor to the map of enumerated option value IDs to the commands * that a tool understands. * diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OptionReference.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OptionReference.java index ab375eb89b8..c115677ec1e 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OptionReference.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OptionReference.java @@ -286,12 +286,26 @@ public class OptionReference implements IOption { /* (non-Javadoc) * @see org.eclipse.cdt.core.build.managed.IOption#getEnumCommand(java.lang.String) */ - public String getEnumCommand(String name) { + public String getEnumCommand(String id) { if (!resolved) { resolveReferences(); } if (option != null) { - return option.getEnumCommand(name); + return option.getEnumCommand(id); + } else { + return new String(); + } + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.build.managed.IOption#getEnumName(java.lang.String) + */ + public String getEnumName(String id) { + if (!resolved) { + resolveReferences(); + } + if (option != null) { + return option.getEnumName(id); } else { return new String(); } diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionSettingsPage.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionSettingsPage.java index 2236eb2265d..2603c2abb0b 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionSettingsPage.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildOptionSettingsPage.java @@ -68,9 +68,11 @@ public class BuildOptionSettingsPage extends BuildSettingsPage { fieldsList.add(booleanField); break; case IOption.ENUMERATED : + String selId; String sel; try { - sel = opt.getSelectedEnum(); + selId = opt.getSelectedEnum(); + sel = opt.getEnumName(selId); } catch (BuildException e) { // If we get this exception, then the option type is // wrong diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildToolSettingsPage.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildToolSettingsPage.java index 8c36b835fcf..02833e10888 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildToolSettingsPage.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildToolSettingsPage.java @@ -184,8 +184,15 @@ public class BuildToolSettingsPage extends BuildSettingsPage { IOption option = options[k]; switch (option.getValueType()) { case IOption.BOOLEAN : + String boolCmd; if (getPreferenceStore().getBoolean(option.getId())) { - buf.append(option.getCommand() + ITool.WHITE_SPACE); + boolCmd = option.getCommand(); + } else { + // Note: getCommandFalse is new with CDT 2.0 + boolCmd = option.getCommandFalse(); + } + if (boolCmd != null && boolCmd.length() > 0) { + buf.append(boolCmd + ITool.WHITE_SPACE); } break; case IOption.ENUMERATED : @@ -199,10 +206,12 @@ public class BuildToolSettingsPage extends BuildSettingsPage { } break; case IOption.STRING : + String strCmd = option.getCommand(); String val = getPreferenceStore().getString(option.getId()); // add this string option value to the list stringOptionsMap.put(option, val); if (val.length() > 0) { + if (strCmd != null) buf.append(strCmd); buf.append(val + ITool.WHITE_SPACE); } break; diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildToolsSettingsStore.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildToolsSettingsStore.java index f164cab091c..9507da90b54 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildToolsSettingsStore.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildToolsSettingsStore.java @@ -232,7 +232,9 @@ public class BuildToolsSettingsStore implements IPreferenceStore { case IOption.ENUMERATED : try{ - value = opt.getSelectedEnum(); + String selId; + selId = opt.getSelectedEnum(); + value = opt.getEnumName(selId); } catch (BuildException e) { break; } |