mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
1. IConfigurationElement get*Element() and set*Element(IConfigurationElement ) methods are deprecated for the IBuilder and ITool, and removed for the IInputType and the IOutputType
2. IBuilder.getBuildFileGenerator() method added
This commit is contained in:
parent
bc4f611eb1
commit
349c1e2627
11 changed files with 71 additions and 86 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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 <code>null</code> 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);
|
||||
|
||||
|
|
|
@ -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 <code>null</code> 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.
|
||||
|
|
|
@ -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 <code>null</code> 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.
|
||||
*
|
||||
|
|
|
@ -563,6 +563,8 @@ public interface ITool extends IBuildObject {
|
|||
* Returns the plugin.xml element of the commandLineGenerator extension or <code>null</code> 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 <code>null</code> 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 <code>null</code> 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);
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
*/
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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$
|
||||
|
|
|
@ -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<types.length; i++) {
|
||||
if (types[i].isSourceExtension(sourceExt)) {
|
||||
return types[i].getDependencyGeneratorElement();
|
||||
return ((InputType)types[i]).getDependencyGeneratorElement();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue