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 2476b725348..0cfb29d2c3e 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 @@ -344,6 +344,15 @@ public interface IOption extends IBuildObject { */ public String[] getLibraries() throws BuildException ; + /** + * @return an array or Strings containing the library files + * that must be linked into the project. + * + * @throws BuildException + * @since 7.0 + */ + public String[] getLibraryFiles() throws BuildException ; + /** * Answers a String containing the unique ID of the selected * enumeration in an enumerated option. For an option that has not been 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 4e8d01b716b..b5c3665e3ee 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 @@ -1337,6 +1337,23 @@ public class Option extends BuildObject implements IOption, IBuildPropertiesRest } } + + /* (non-Javadoc) + * @see org.eclipse.cdt.managedbuilder.core.IOption#getLibraryFiles() + */ + public String[] getLibraryFiles() throws BuildException { + if (getValueType() != LIBRARY_FILES) { + throw new BuildException(ManagedMakeMessages.getResourceString("Option.error.bad_value_type")); //$NON-NLS-1$ + } + ArrayList v = (ArrayList)getValue(); + if (v == null) { + return EMPTY_STRING_ARRAY; + } else { + v.trimToSize(); + return v.toArray(new String[v.size()]); + } + } + /* (non-Javadoc) * @see org.eclipse.cdt.managedbuilder.core.IOption#getDefaultEnumValue() */ 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 97e6d91cf89..91f28a1f28d 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 @@ -440,6 +440,20 @@ public class OptionReference implements IOption { throw new BuildException(ManagedMakeMessages.getResourceString("Option.error.bad_value_type")); //$NON-NLS-1$ } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.build.managed.IOption#getLibraryFiles() + */ + public String[] getLibraryFiles() throws BuildException { + if (value == null) + return option.getLibraryFiles(); + else if (getValueType() == LIBRARY_FILES) { + ArrayList list = (ArrayList)value; + return list.toArray(new String[list.size()]); + } + else + throw new BuildException(ManagedMakeMessages.getResourceString("Option.error.bad_value_type")); //$NON-NLS-1$ + } + /* (non-Javadoc) * @see org.eclipse.cdt.core.build.managed.IBuildObject#getName() */