diff options
author | Doug Schaefer | 2003-06-23 14:36:31 +0000 |
---|---|---|
committer | Doug Schaefer | 2003-06-23 14:36:31 +0000 |
commit | b8059d7f27fb2f28cb77e7faa38ba6112d9a61cf (patch) | |
tree | 58ed23f5b36997e87d438cc49809d112f3cf2180 /core/org.eclipse.cdt.core/build | |
parent | 40e2cbf0b08aa51acdfaeeb48ef18cf83e1be6b3 (diff) | |
download | org.eclipse.cdt-b8059d7f27fb2f28cb77e7faa38ba6112d9a61cf.tar.gz org.eclipse.cdt-b8059d7f27fb2f28cb77e7faa38ba6112d9a61cf.tar.xz org.eclipse.cdt-b8059d7f27fb2f28cb77e7faa38ba6112d9a61cf.zip |
Patch for Sean Evoy:
1. Fix for bug 38665 - Need to select platform before configurations become visible
2. Icon files that were not delivered in my last patch
3. A new interface for clients of the build model to extract include paths and defined symbols for managed projects. Unmanaged projects to follow soon.
Diffstat (limited to 'core/org.eclipse.cdt.core/build')
9 files changed, 330 insertions, 59 deletions
diff --git a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/IManagedBuildPathInfo.java b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/IManagedBuildPathInfo.java new file mode 100644 index 00000000000..03fbcc20f11 --- /dev/null +++ b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/IManagedBuildPathInfo.java @@ -0,0 +1,32 @@ +package org.eclipse.cdt.core.build.managed; + +/********************************************************************** + * Copyright (c) 2002,2003 Rational Software Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.html + * + * Contributors: + * IBM Rational Software - Initial API and implementation +***********************************************************************/ + +public interface IManagedBuildPathInfo { + /** + * Answers a <code>String</code> array containing all the defined + * preprocessor symbols. If there are no defined symbols, the receiver + * will return an empty array, never <code>null</code> + * + * @return + */ + public String[] getDefinedSymbols(); + + /** + * Answers a <code>String</code> array containing all the known include + * search paths. If there are no paths defined, the receiver will + * return an empty array, never <code>null</code> + * + * @return + */ + public String[] getIncludePaths(); +} diff --git a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/IOption.java b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/IOption.java index 9543517adab..2e442ea3dd5 100644 --- a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/IOption.java +++ b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/IOption.java @@ -14,24 +14,28 @@ package org.eclipse.cdt.core.build.managed; * */ public interface IOption extends IBuildObject { - // Type for the value of the option public static final int BOOLEAN = 0; public static final int ENUMERATED = 1; public static final int STRING = 2; public static final int STRING_LIST = 3; + public static final int INCLUDE_PATH = 4; + public static final int PREPROCESSOR_SYMBOLS = 5; /** * If this option is defined as an enumeration, this function returns * the list of possible values for that enum. * - * If this option is not defined as an enumeration, it returns null. + * If this option is not defined as an enumeration, it returns <code>null</code>. * @return */ public String [] getApplicableValues(); /** - * @return the value for a boolean option. + * Answers the value for a boolean option. + * + * @return + * @throws BuildException */ public boolean getBooleanValue() throws BuildException; @@ -43,45 +47,64 @@ public interface IOption extends IBuildObject { public IOptionCategory getCategory(); /** - * @return a String containing the actual command line option - * associated with the <code>IOption</code> + * Answers a <code>String</code> containing the actual command line + * option associated with the option + * + * @return */ public String getCommand(); /** - * @return <code>String</code> containing the command associated with the - * enumeration name. + * @return + * @throws BuildException */ - public String getEnumCommand (String name); - + public String[] getDefinedSymbols() throws BuildException; + /** - * Returns the name of this option. - * - * @return + * Answers the command associated with the enumeration name. For + * example, if the enumeration name was 'Default' for the debug + * level option of the Gnu compiler, and the plugin manifest defined + * that as -g, then the return value would be a String containing "-g" + * + * @return */ - public String getName(); - + public String getEnumCommand (String name); + /** - * Returns the current value for this option if it is a List of Strings. + * Answers an array of <code>String</code> containing the includes paths + * defined in the build model. * * @return + * @throws BuildException */ - public String [] getStringListValue() throws BuildException; + public String[] getIncludePaths() throws BuildException; + /** - * @return a <code>String</code> containing the selected enumeration in an + * Answers a <code>String</code> containing the selected enumeration in an * enumerated option. For an option that has not been changed by the user, * the receiver will answer with the default defined in the plugin manifest. * If the user has modified the selection, the receiver will answer with the * overridden selection. + * + * @return + * @throws BuildException */ - public String getSelectedEnum (); + public String getSelectedEnum () throws BuildException; + /** + * Returns the current value for this option if it is a List of Strings. + * + * @return + * @throws BuildException + */ + public String [] getStringListValue() throws BuildException; /** * Returns the current value for this option if it is a String * * @return + * @throws BuildException */ public String getStringValue() throws BuildException; diff --git a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/ManagedBuildManager.java b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/ManagedBuildManager.java index 7adb6cd1471..8d261f0d547 100644 --- a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/ManagedBuildManager.java +++ b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/managed/ManagedBuildManager.java @@ -118,19 +118,28 @@ public class ManagedBuildManager { } } - + + /** + * Answers the result of a best-effort search to find a target with the + * specified ID, or <code>null</code> if one is not found. + * + * @param resource + * @param id + * @return + */ public static ITarget getTarget(IResource resource, String id) { + ITarget target = null; + // Check if the target is spec'd in the build info for the resource if (resource != null) { IResourceBuildInfo buildInfo = getBuildInfo(resource); if (buildInfo != null) - return buildInfo.getTarget(id); + target = buildInfo.getTarget(id); } - - ITarget target = (ITarget)getExtensionTargetMap().get(id); - if (target != null) - return target; - - return null; + // OK, check the extension map + if (target == null) { + target = (ITarget)getExtensionTargetMap().get(id); + } + return target; } /** @@ -329,7 +338,7 @@ public class ManagedBuildManager { return buildInfo; } - public static IResourceBuildInfo getBuildInfo(IResource resource, boolean create) { + private static ResourceBuildInfo findBuildInfo(IResource resource, boolean create) { // Make sure the extension information is loaded first loadExtensions(); ResourceBuildInfo buildInfo = null; @@ -354,9 +363,23 @@ public class ManagedBuildManager { return buildInfo; } + public static IResourceBuildInfo getBuildInfo(IResource resource, boolean create) { + return (IResourceBuildInfo) findBuildInfo(resource, create); + } + public static IResourceBuildInfo getBuildInfo(IResource resource) { - return getBuildInfo(resource, false); + return (IResourceBuildInfo) findBuildInfo(resource, false); } + /** + * Answers with an interface to the parse information that has been + * associated with the resource specified in the argument. + * + * @param resource + * @return + */ + public static IManagedBuildPathInfo getBuildPathInfo(IResource resource) { + return (IManagedBuildPathInfo) getBuildInfo(resource, false); + } } diff --git a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Configuration.java b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Configuration.java index 1369bb6a944..45af3a8f52a 100644 --- a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Configuration.java +++ b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Configuration.java @@ -272,7 +272,21 @@ public class Configuration extends BuildObject implements IConfiguration { */ public void setOption(IOption option, String[] value) throws BuildException { // Is there a delta - String[] oldValue = option.getStringListValue(); + String[] oldValue; + switch (option.getValueType()) { + case IOption.STRING_LIST : + oldValue = option.getStringListValue(); + break; + case IOption.INCLUDE_PATH : + oldValue = option.getIncludePaths(); + break; + case IOption.PREPROCESSOR_SYMBOLS : + oldValue = option.getDefinedSymbols(); + break; + default : + oldValue = new String[0]; + break; + } if(!Arrays.equals(value, oldValue)) createOptionReference(option).setValue(value); } diff --git a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Option.java b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Option.java index ccc5876d104..d9209a9c2a3 100644 --- a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Option.java +++ b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Option.java @@ -36,7 +36,7 @@ public class Option extends BuildObject implements IOption { private String defaultEnumName; private String command; - private static final String[] emptyStrings = new String[0]; + private static final String[] EMPTY_STRING_ARRAY = new String[0]; private static final String EMPTY_STRING = new String(); public Option(ITool tool) { @@ -46,24 +46,24 @@ public class Option extends BuildObject implements IOption { public Option(Tool tool, IConfigurationElement element) { this(tool); - // id + // Get the unique id of the option setId(element.getAttribute("id")); - // hook me up + // Hook me up to a tool tool.addOption(this); - // name + // Get the option Name (this is what the user will see in the UI) setName(element.getAttribute("name")); - // category + // Options can be grouped into categories String categoryId = element.getAttribute("category"); if (categoryId != null) setCategory(tool.getOptionCategory(categoryId)); - // command + // Get the command defined for the option command = element.getAttribute("command"); - // valueType + // Options hold different types of values String valueTypeStr = element.getAttribute("valueType"); if (valueTypeStr == null) valueType = -1; @@ -73,10 +73,14 @@ public class Option extends BuildObject implements IOption { valueType = IOption.STRING_LIST; else if (valueTypeStr.equals("boolean")) valueType = IOption.BOOLEAN; - else + else if (valueTypeStr.equals("enumerated")) valueType = IOption.ENUMERATED; + else if (valueTypeStr.equals("includePath")) + valueType = IOption.INCLUDE_PATH; + else + valueType = IOption.PREPROCESSOR_SYMBOLS; - // value + // Now get the actual value enumCommands = new HashMap(); switch (valueType) { case IOption.BOOLEAN: @@ -103,6 +107,8 @@ public class Option extends BuildObject implements IOption { value = enumList; break; case IOption.STRING_LIST: + case IOption.INCLUDE_PATH: + case IOption.PREPROCESSOR_SYMBOLS: List valueList = new ArrayList(); IConfigurationElement[] valueElements = element.getChildren("optionValue"); for (int i = 0; i < valueElements.length; ++i) { @@ -122,7 +128,7 @@ public class Option extends BuildObject implements IOption { List enumValues = (List)value; return enumValues != null ? (String[])enumValues.toArray(new String[enumValues.size()]) - : emptyStrings; + : EMPTY_STRING_ARRAY; } public boolean getBooleanValue() { @@ -145,36 +151,70 @@ public class Option extends BuildObject implements IOption { } /* (non-Javadoc) + * @see org.eclipse.cdt.core.build.managed.IOption#getDefinedSymbols() + */ + public String[] getDefinedSymbols() throws BuildException { + if (valueType != IOption.PREPROCESSOR_SYMBOLS) { + throw new BuildException("bad value type"); + } + List v = (List)value; + return v != null + ? (String[])v.toArray(new String[v.size()]) + : EMPTY_STRING_ARRAY; + } + + /* (non-Javadoc) * @see org.eclipse.cdt.core.build.managed.IOption#getEnumCommand(java.lang.String) */ public String getEnumCommand(String name) { String cmd = (String) enumCommands.get(name); - return (cmd == null ? new String() : cmd); + return cmd == null ? EMPTY_STRING : cmd; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.build.managed.IOption#getIncludePaths() + */ + public String[] getIncludePaths() throws BuildException { + if (valueType != IOption.INCLUDE_PATH) { + throw new BuildException("bad value type"); + } + List v = (List)value; + return v != null + ? (String[])v.toArray(new String[v.size()]) + : EMPTY_STRING_ARRAY; } /* (non-Javadoc) * @see org.eclipse.cdt.core.build.managed.IOption#getDefaultEnumValue() */ - public String getSelectedEnum() { - return defaultEnumName; + public String getSelectedEnum() throws BuildException { + if (valueType != IOption.ENUMERATED) { + throw new BuildException("bad value type"); + } + return defaultEnumName == null ? EMPTY_STRING : defaultEnumName; } /* (non-Javadoc) * @see org.eclipse.cdt.core.build.managed.IOption#getStringListValue() */ - public String[] getStringListValue() { + public String[] getStringListValue() throws BuildException { + if (valueType != IOption.STRING_LIST) { + throw new BuildException("bad value type"); + } List v = (List)value; return v != null ? (String[])v.toArray(new String[v.size()]) - : emptyStrings; + : EMPTY_STRING_ARRAY; } /* (non-Javadoc) * @see org.eclipse.cdt.core.build.managed.IOption#getStringValue() */ - public String getStringValue() { - String v = (String) value; - return value == null ? EMPTY_STRING : v; + public String getStringValue() throws BuildException { + if (valueType != IOption.STRING) { + throw new BuildException("bad value type"); + } + return value == null ? EMPTY_STRING : (String)value; } /* (non-Javadoc) @@ -204,16 +244,15 @@ public class Option extends BuildObject implements IOption { public IOption setValue(IConfiguration config, String value) throws BuildException { - if (valueType != IOption.STRING) + if (valueType != IOption.STRING + || valueType != IOption.ENUMERATED) throw new BuildException("Bad value for type"); if (config == null) { this.value = value; return this; } else { - // Magic time - return null; } } @@ -224,7 +263,9 @@ public class Option extends BuildObject implements IOption { public IOption setValue(IConfiguration config, String[] value) throws BuildException { - if (valueType != IOption.STRING_LIST) + if (valueType != IOption.STRING_LIST + || valueType != IOption.INCLUDE_PATH + || valueType != IOption.PREPROCESSOR_SYMBOLS) throw new BuildException("Bad value for type"); if (config == null) { diff --git a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/OptionReference.java b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/OptionReference.java index 66abdfc2df1..0228a7408db 100644 --- a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/OptionReference.java +++ b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/OptionReference.java @@ -53,7 +53,7 @@ public class OptionReference implements IOption { } /** - * Created from extension. + * Created from extension point. * * @param owner * @param element @@ -73,9 +73,15 @@ public class OptionReference implements IOption { value = element.getAttribute("defaultValue"); break; case IOption.ENUMERATED: - value = option.getSelectedEnum(); + try { + value = option.getSelectedEnum(); + } catch (BuildException e) { + value = new String(); + } break; case IOption.STRING_LIST: + case IOption.INCLUDE_PATH: + case IOption.PREPROCESSOR_SYMBOLS: List valueList = new ArrayList(); IConfigurationElement[] valueElements = element.getChildren("optionValue"); for (int i = 0; i < valueElements.length; ++i) { @@ -108,6 +114,8 @@ public class OptionReference implements IOption { value = (String) element.getAttribute("defaultValue"); break; case IOption.STRING_LIST: + case IOption.INCLUDE_PATH: + case IOption.PREPROCESSOR_SYMBOLS: List valueList = new ArrayList(); NodeList nodes = element.getElementsByTagName("optionValue"); for (int i = 0; i < nodes.getLength(); ++i) { @@ -141,6 +149,8 @@ public class OptionReference implements IOption { element.setAttribute("defaultValue", (String)value); break; case IOption.STRING_LIST: + case IOption.INCLUDE_PATH: + case IOption.PREPROCESSOR_SYMBOLS: ArrayList stringList = (ArrayList)value; ListIterator iter = stringList.listIterator(); while (iter.hasNext()) { @@ -174,6 +184,20 @@ public class OptionReference implements IOption { } /* (non-Javadoc) + * @see org.eclipse.cdt.core.build.managed.IOption#getDefinedSymbols() + */ + public String[] getDefinedSymbols() throws BuildException { + if (value == null) + return option.getDefinedSymbols(); + else if (getValueType() == IOption.PREPROCESSOR_SYMBOLS) { + ArrayList list = (ArrayList)value; + return (String[]) list.toArray(new String[list.size()]); + } + else + throw new BuildException("bad value type"); + } + + /* (non-Javadoc) * @see org.eclipse.cdt.core.build.managed.IOption#getEnumCommand(java.lang.String) */ public String getEnumCommand(String name) { @@ -184,13 +208,29 @@ public class OptionReference implements IOption { * @see org.eclipse.cdt.core.build.managed.IBuildObject#getId() */ public String getId() { + // A reference has the same id as the option it references return option.getId(); } /* (non-Javadoc) + * @see org.eclipse.cdt.core.build.managed.IOption#getIncludePaths() + */ + public String[] getIncludePaths() throws BuildException { + if (value == null) + return option.getIncludePaths(); + else if (getValueType() == IOption.INCLUDE_PATH) { + ArrayList list = (ArrayList)value; + return (String[]) list.toArray(new String[list.size()]); + } + else + throw new BuildException("bad value type"); + } + + /* (non-Javadoc) * @see org.eclipse.cdt.core.build.managed.IBuildObject#getName() */ public String getName() { + // A reference has the same name as the option it references return option.getName(); } @@ -212,13 +252,15 @@ public class OptionReference implements IOption { /* (non-Javadoc) * @see org.eclipse.cdt.core.build.managed.IOption#getDefaultEnumValue() */ - public String getSelectedEnum() { + public String getSelectedEnum() throws BuildException { if (value == null) { // Return the default defined for the enumeration in the manifest. return option.getSelectedEnum(); - } else { + } else if (getValueType() == IOption.ENUMERATED) { // Value will contain the human-readable name of the enum return (String) value; + } else { + throw new BuildException("bad value type"); } } @@ -302,11 +344,14 @@ public class OptionReference implements IOption { * @throws BuildException */ public void setValue(String [] value) throws BuildException { - if (getValueType() == IOption.STRING_LIST) { + if (getValueType() == IOption.STRING_LIST + || getValueType() == IOption.INCLUDE_PATH + || getValueType() == IOption.PREPROCESSOR_SYMBOLS) { // Just replace what the option reference is holding onto this.value = new ArrayList(Arrays.asList(value)); } else throw new BuildException("bad value type"); } + } diff --git a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/ResourceBuildInfo.java b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/ResourceBuildInfo.java index 82e3627c505..8cd236cbadc 100644 --- a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/ResourceBuildInfo.java +++ b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/ResourceBuildInfo.java @@ -12,13 +12,16 @@ package org.eclipse.cdt.internal.core.build.managed; * **********************************************************************/ import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.ListIterator; import java.util.Map; import org.eclipse.cdt.core.build.managed.BuildException; +import org.eclipse.cdt.core.build.managed.IManagedBuildPathInfo; import org.eclipse.cdt.core.build.managed.IConfiguration; +import org.eclipse.cdt.core.build.managed.IOption; import org.eclipse.cdt.core.build.managed.IResourceBuildInfo; import org.eclipse.cdt.core.build.managed.ITarget; import org.eclipse.cdt.core.build.managed.ITool; @@ -27,7 +30,7 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; -public class ResourceBuildInfo implements IResourceBuildInfo { +public class ResourceBuildInfo implements IResourceBuildInfo, IManagedBuildPathInfo { private IResource owner; private Map targetMap; @@ -273,4 +276,58 @@ public class ResourceBuildInfo implements IResourceBuildInfo { defaultTarget = target; } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.build.managed.IBuildParseInfo#getDefinedSymbols() + */ + public String[] getDefinedSymbols() { + // Return the include paths for the default configuration + ArrayList paths = new ArrayList(); + IConfiguration config = getDefaultConfiguration(getDefaultTarget()); + ITool[] tools = config.getTools(); + for (int i = 0; i < tools.length; i++) { + ITool tool = tools[i]; + IOption[] opts = tool.getOptions(); + for (int j = 0; j < opts.length; j++) { + IOption option = opts[j]; + if (option.getValueType() == IOption.PREPROCESSOR_SYMBOLS) { + try { + paths.addAll(Arrays.asList(option.getDefinedSymbols())); + } catch (BuildException e) { + // we should never get here + continue; + } + } + } + } + paths.trimToSize(); + return (String[])paths.toArray(new String[paths.size()]); + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.build.managed.IBuildParseInfo#getIncludePaths() + */ + public String[] getIncludePaths() { + // Return the include paths for the default configuration + ArrayList paths = new ArrayList(); + IConfiguration config = getDefaultConfiguration(getDefaultTarget()); + ITool[] tools = config.getTools(); + for (int i = 0; i < tools.length; i++) { + ITool tool = tools[i]; + IOption[] opts = tool.getOptions(); + for (int j = 0; j < opts.length; j++) { + IOption option = opts[j]; + if (option.getValueType() == IOption.INCLUDE_PATH) { + try { + paths.addAll(Arrays.asList(option.getIncludePaths())); + } catch (BuildException e) { + // we should never get here + continue; + } + } + } + } + paths.trimToSize(); + return (String[])paths.toArray(new String[paths.size()]); + } + } diff --git a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Tool.java b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Tool.java index 713663b02e8..38144dee074 100644 --- a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Tool.java +++ b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/Tool.java @@ -233,14 +233,32 @@ public class Tool extends BuildObject implements ITool, IOptionCategory { break; case IOption.STRING_LIST : - String cmd = option.getCommand(); + String listCmd = option.getCommand(); String[] list = option.getStringListValue(); for (int j = 0; j < list.length; j++) { String temp = list[j]; - buf.append(cmd + temp + WHITE_SPACE); + buf.append(listCmd + temp + WHITE_SPACE); } break; + case IOption.INCLUDE_PATH : + String incCmd = option.getCommand(); + String[] paths = option.getIncludePaths(); + for (int j = 0; j < paths.length; j++) { + String temp = paths[j]; + buf.append(incCmd + temp + WHITE_SPACE); + } + break; + + case IOption.PREPROCESSOR_SYMBOLS : + String defCmd = option.getCommand(); + String[] symbols = option.getDefinedSymbols(); + for (int j = 0; j < symbols.length; j++) { + String temp = symbols[j]; + buf.append(defCmd + temp + WHITE_SPACE); + } + break; + default : break; } diff --git a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/ToolReference.java b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/ToolReference.java index 57bbfb48082..c388d540880 100644 --- a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/ToolReference.java +++ b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/internal/core/build/managed/ToolReference.java @@ -168,6 +168,24 @@ public class ToolReference implements ITool { } break; + case IOption.INCLUDE_PATH : + String incCmd = option.getCommand(); + String[] paths = option.getIncludePaths(); + for (int j = 0; j < paths.length; j++) { + String temp = paths[j]; + buf.append(incCmd + temp + WHITE_SPACE); + } + break; + + case IOption.PREPROCESSOR_SYMBOLS : + String defCmd = option.getCommand(); + String[] symbols = option.getDefinedSymbols(); + for (int j = 0; j < symbols.length; j++) { + String temp = symbols[j]; + buf.append(defCmd + temp + WHITE_SPACE); + } + break; + default : break; } |