diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCoreTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCoreTests.java
index c9715964e0d..13f2ce8535c 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCoreTests.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCoreTests.java
@@ -10,25 +10,25 @@
**********************************************************************/
package org.eclipse.cdt.managedbuilder.core.tests;
-import org.eclipse.cdt.managedbuilder.core.IProjectType;
-import org.eclipse.cdt.managedbuilder.core.BuildException;
-import org.eclipse.cdt.managedbuilder.core.IConfiguration;
-import org.eclipse.cdt.managedbuilder.core.IToolChain;
-import org.eclipse.cdt.managedbuilder.core.ITool;
-import org.eclipse.cdt.managedbuilder.core.IOption;
-import org.eclipse.cdt.managedbuilder.core.IOptionCategory;
-import org.eclipse.cdt.managedbuilder.core.ITargetPlatform;
-import org.eclipse.cdt.managedbuilder.core.IBuilder;
-import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
+import org.eclipse.cdt.managedbuilder.core.BuildException;
+import org.eclipse.cdt.managedbuilder.core.IBuilder;
+import org.eclipse.cdt.managedbuilder.core.IConfiguration;
+import org.eclipse.cdt.managedbuilder.core.IOption;
+import org.eclipse.cdt.managedbuilder.core.IOptionCategory;
+import org.eclipse.cdt.managedbuilder.core.IProjectType;
+import org.eclipse.cdt.managedbuilder.core.ITargetPlatform;
+import org.eclipse.cdt.managedbuilder.core.ITool;
+import org.eclipse.cdt.managedbuilder.core.IToolChain;
+import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
+import org.eclipse.cdt.managedbuilder.internal.core.Builder;
import org.eclipse.core.runtime.IConfigurationElement;
@@ -160,7 +160,7 @@ public class ManagedBuildCoreTests extends TestCase {
assertEquals(builder.getCommand(), expectedCommand);
assertEquals(builder.getArguments(), expectedArguments);
assertEquals(builder.getName(), expectedBuilderName[iconfig]);
- IConfigurationElement element = builder.getBuildFileGeneratorElement();
+ IConfigurationElement element = ((Builder)builder).getBuildFileGeneratorElement();
if (element != null) {
assertEquals(element.getAttribute(IBuilder.BUILDFILEGEN_ID), expectedBuilderInfo);
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IBuilder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IBuilder.java
index 7ac7902b3a9..35b6da1a14d 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IBuilder.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IBuilder.java
@@ -12,6 +12,7 @@ package org.eclipse.cdt.managedbuilder.core;
import org.eclipse.cdt.managedbuilder.macros.IFileContextBuildMacroValues;
import org.eclipse.cdt.managedbuilder.macros.IReservedMacroNameSupplier;
+import org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator;
import org.eclipse.core.runtime.IConfigurationElement;
/**
@@ -53,9 +54,17 @@ public interface IBuilder extends IBuildObject {
* Returns the plugin.xml element of the buildFileGenerator extension or null
if none.
*
* @return IConfigurationElement
+ * @deprecated - use getBuildFileGenerator() instead
*/
public IConfigurationElement getBuildFileGeneratorElement();
+ /**
+ * Returns the BuildfileGenerator used to generate buildfiles for this builder
+ *
+ * @return IManagedBuilderMakefileGenerator
+ */
+ IManagedBuilderMakefileGenerator getBuildFileGenerator();
+
/**
* Returns the name of the build/make utility for the configuration.
*
@@ -138,6 +147,8 @@ public interface IBuilder extends IBuildObject {
* Sets the BuildFileGenerator plugin.xml element
*
* @param element
+ *
+ * @deprecated
*/
public void setBuildFileGeneratorElement(IConfigurationElement element);
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IInputType.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IInputType.java
index 32280ef8aa3..7b306fdce86 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IInputType.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IInputType.java
@@ -11,9 +11,8 @@
package org.eclipse.cdt.managedbuilder.core;
import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGenerator;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.content.IContentType;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.content.IContentType;
/**
* This interface represents an inputType instance in the managed build system.
@@ -304,20 +303,6 @@ public interface IInputType extends IBuildObject {
*/
public void setPrimaryInput(boolean primary);
- /**
- * Returns the plugin.xml element of the dependencyGenerator extension or null
if none.
- *
- * @return IConfigurationElement
- */
- public IConfigurationElement getDependencyGeneratorElement();
-
- /**
- * Sets the DependencyGenerator plugin.xml element
- *
- * @param element
- */
- public void setDependencyGeneratorElement(IConfigurationElement element);
-
/**
* Returns a class instance that implements an interface to generate
* source-level dependencies for this input type.
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOutputType.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOutputType.java
index 9965d7cd7b3..c6f9fa67e4e 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOutputType.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOutputType.java
@@ -10,7 +10,6 @@
**********************************************************************/
package org.eclipse.cdt.managedbuilder.core;
-import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.content.IContentType;
/**
@@ -219,24 +218,6 @@ public interface IOutputType extends IBuildObject {
*/
public void setNamePattern(String pattern);
- /**
- * Returns the plugin.xml element of the nameProvider extension or null
if none.
- * nameProvider specified the name of a class that implements the IManagedOutputNameProvider
- * interface. When specified, the namePattern and outputNames are ignored.
- * When multipleOfType is true, this attribute, or the outputNames attribute,
- * is required in order for MBS to know the names of the output files.
- *
- * @return IConfigurationElement
- */
- public IConfigurationElement getNameProviderElement();
-
- /**
- * Sets the nameProvider plugin.xml element
- *
- * @param element
- */
- public void setNameProviderElement(IConfigurationElement element);
-
/**
* Returns the IManagedOutputNameProvider interface as specified by the nameProvider attribute.
*
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITool.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITool.java
index 97b4860a800..3017afa4684 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITool.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITool.java
@@ -563,6 +563,8 @@ public interface ITool extends IBuildObject {
* Returns the plugin.xml element of the commandLineGenerator extension or null
if none.
*
* @return IConfigurationElement
+ *
+ * @deprecated - use getCommandLineGenerator
*/
public IConfigurationElement getCommandLineGeneratorElement();
@@ -570,6 +572,7 @@ public interface ITool extends IBuildObject {
* Sets the CommandLineGenerator plugin.xml element
*
* @param element
+ * @deprecated
*/
public void setCommandLineGeneratorElement(IConfigurationElement element);
@@ -583,23 +586,15 @@ public interface ITool extends IBuildObject {
* Returns the plugin.xml element of the dependencyGenerator extension or null
if none.
*
* @return IConfigurationElement
- * @deprecated - use getDependencyGeneratorElementForExtension or IInputType method
+ * @deprecated - use getDependencyGeneratorForExtension or IInputType#getDependencyGenerator method
*/
public IConfigurationElement getDependencyGeneratorElement();
- /**
- * Returns the plugin.xml element of the dependencyGenerator extension or null
if none.
- *
- * @param sourceExt source file extension
- * @return IConfigurationElement
- */
- public IConfigurationElement getDependencyGeneratorElementForExtension(String sourceExt);
-
/**
* Sets the DependencyGenerator plugin.xml element
*
* @param element
- * @deprecated - use IInputType method
+ * @deprecated
*/
public void setDependencyGeneratorElement(IConfigurationElement element);
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java
index fce5616c1c3..6187937d7dd 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java
@@ -590,27 +590,12 @@ public class ManagedBuildManager extends AbstractCExtension implements IScannerI
* @return
*/
public static IManagedBuilderMakefileGenerator getBuildfileGenerator(IConfiguration config) {
- try {
- IToolChain toolChain = config.getToolChain();
- if(toolChain != null){
+ IToolChain toolChain = config.getToolChain();
+ if(toolChain != null){
IBuilder builder = toolChain.getBuilder();
- IConfigurationElement element = builder.getBuildFileGeneratorElement();
- if (element != null) {
- if (element.getName().equalsIgnoreCase("target")) { //$NON-NLS-1$
- if (element.getAttribute(ManagedBuilderCorePlugin.MAKEGEN_ID) != null) {
- return (IManagedBuilderMakefileGenerator) element.createExecutableExtension(ManagedBuilderCorePlugin.MAKEGEN_ID);
- }
- } else {
- if (element.getAttribute(IBuilder.BUILDFILEGEN_ID) != null) {
- return (IManagedBuilderMakefileGenerator) element.createExecutableExtension(IBuilder.BUILDFILEGEN_ID);
- }
- }
- }
+ if(builder != null)
+ return builder.getBuildFileGenerator();
}
- }
- catch (CoreException e) {
- // Probably not defined
- }
// If no generator is defined, return the default GNU generator
return new GnuMakefileGenerator();
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java
index 8ec51b83a98..649a0bc409b 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java
@@ -20,9 +20,12 @@ import org.eclipse.cdt.managedbuilder.core.IManagedConfigElement;
import org.eclipse.cdt.managedbuilder.core.IProjectType;
import org.eclipse.cdt.managedbuilder.core.IToolChain;
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
+import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin;
import org.eclipse.cdt.managedbuilder.internal.macros.FileContextBuildMacroValues;
import org.eclipse.cdt.managedbuilder.macros.IFileContextBuildMacroValues;
import org.eclipse.cdt.managedbuilder.macros.IReservedMacroNameSupplier;
+import org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator;
+import org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.w3c.dom.Document;
@@ -578,12 +581,37 @@ public class Builder extends BuildObject implements IBuilder {
public IConfigurationElement getBuildFileGeneratorElement() {
if (buildFileGeneratorElement == null) {
if (superClass != null) {
- return superClass.getBuildFileGeneratorElement();
+ return ((Builder)superClass).getBuildFileGeneratorElement();
}
}
return buildFileGeneratorElement;
}
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.core.IBuilder#getBuildFileGenerator()
+ */
+ public IManagedBuilderMakefileGenerator getBuildFileGenerator(){
+ IConfigurationElement element = getBuildFileGeneratorElement();
+ if (element != null) {
+ try {
+ if (element.getName().equalsIgnoreCase("target")) { //$NON-NLS-1$
+ if (element.getAttribute(ManagedBuilderCorePlugin.MAKEGEN_ID) != null) {
+ return (IManagedBuilderMakefileGenerator) element.createExecutableExtension(ManagedBuilderCorePlugin.MAKEGEN_ID);
+ }
+ } else {
+ if (element.getAttribute(IBuilder.BUILDFILEGEN_ID) != null) {
+ return (IManagedBuilderMakefileGenerator) element.createExecutableExtension(IBuilder.BUILDFILEGEN_ID);
+ }
+ }
+ } catch (CoreException e) {
+ } catch (ClassCastException e) {
+ }
+
+ }
+ return new GnuMakefileGenerator();
+ }
+
+
/* (non-Javadoc)
* @see org.eclipse.cdt.managedbuilder.core.IBuilder#setBuildFileGeneratorElement(String)
*/
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java
index 2d0c53d7f13..4b1f8094a1a 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java
@@ -854,7 +854,7 @@ public class InputType extends BuildObject implements IInputType {
public IConfigurationElement getDependencyGeneratorElement() {
if (dependencyGeneratorElement == null) {
if (superClass != null) {
- return superClass.getDependencyGeneratorElement();
+ return ((InputType)superClass).getDependencyGeneratorElement();
}
}
return dependencyGeneratorElement;
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OutputType.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OutputType.java
index f3d093cc90a..51b84f86368 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OutputType.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OutputType.java
@@ -522,7 +522,7 @@ public class OutputType extends BuildObject implements IOutputType {
public IConfigurationElement getNameProviderElement() {
if (nameProviderElement == null) {
if (superClass != null) {
- return superClass.getNameProviderElement();
+ return ((OutputType)superClass).getNameProviderElement();
}
}
return nameProviderElement;
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 2934918f6d8..602bb5ade2c 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
@@ -1032,7 +1032,7 @@ public class Target extends BuildObject implements ITarget {
builder.setArguments(getMakeArguments());
IManagedConfigElement element = ManagedBuildManager.getConfigElement(this);
if (element instanceof DefaultManagedConfigElement) {
- builder.setBuildFileGeneratorElement(((DefaultManagedConfigElement)element).getConfigurationElement());
+ ((Builder)builder).setBuildFileGeneratorElement(((DefaultManagedConfigElement)element).getConfigurationElement());
}
// Create the TargetPlatform
subId = id + ".targetplatform"; //$NON-NLS-1$
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
index b0af30cc335..8e27db57e1b 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
@@ -1848,7 +1848,7 @@ public class Tool extends BuildObject implements ITool, IOptionCategory {
public IConfigurationElement getCommandLineGeneratorElement() {
if (commandLineGeneratorElement == null) {
if (superClass != null) {
- return superClass.getCommandLineGeneratorElement();
+ return ((Tool)superClass).getCommandLineGeneratorElement();
}
}
return commandLineGeneratorElement;
@@ -1889,7 +1889,7 @@ public class Tool extends BuildObject implements ITool, IOptionCategory {
// First try the primary InputType
IInputType type = getPrimaryInputType();
if (type != null) {
- IConfigurationElement primary = type.getDependencyGeneratorElement();
+ IConfigurationElement primary = ((InputType)type).getDependencyGeneratorElement();
if (primary != null) return primary;
}
@@ -1906,7 +1906,7 @@ public class Tool extends BuildObject implements ITool, IOptionCategory {
if (types != null) {
for (int i=0; i