org.eclipse.cdt.managedbuilder.core
Interface IToolChain

All Superinterfaces:
IBuildObject, IHoldsOptions
All Known Implementing Classes:
TestToolchain, ToolChain

public interface IToolChain
extends IBuildObject, IHoldsOptions

This interface represents a tool-integrator-defined, ordered set of tools that transform the project's input into the project's outputs. A tool-chain can be defined as part of a configuration, or as an independent specification that is referenced in a separate configuration via the toolChain superclass attribute.

The toolChain contains one or more children of type tool. These define the tools used in the tool-chain. The toolChain contains one child of type targetPlatform. This defines the architecture/os combination where the outputs of the project can be deployed. The toolChain contains one child of type builder. This defines the "build" or "make" utility that is used to drive the transformation of the inputs into outputs.

Since:
2.1

Field Summary
static java.lang.String ARCH_LIST
           
static java.lang.String CONFIGURATION_ENVIRONMENT_SUPPLIER
           
static java.lang.String CONFIGURATION_MACRO_SUPPLIER
           
static java.lang.String CONVERT_TO_ID
           
static java.lang.String ERROR_PARSERS
           
static java.lang.String IS_SYSTEM
           
static java.lang.String IS_TOOL_CHAIN_SUPPORTED
           
static java.lang.String NON_INTERNAL_BUILDER_ID
           
static java.lang.String OS_LIST
           
static java.lang.String RESOURCE_TYPE_BASED_DISCOVERY
           
static java.lang.String SCANNER_CONFIG_PROFILE_ID
           
static java.lang.String SECONDARY_OUTPUTS
           
static java.lang.String SUPPORTS_MANAGED_BUILD
           
static java.lang.String TARGET_TOOL
           
static java.lang.String TOOL_CHAIN_ELEMENT_NAME
           
static java.lang.String VERSIONS_SUPPORTED
           
 
Fields inherited from interface org.eclipse.cdt.managedbuilder.core.IHoldsOptions
OPTION, OPTION_CAT, OPTION_REF
 
Method Summary
 IBuilder createBuilder(IBuilder superClass, java.lang.String Id, java.lang.String name, boolean isExtensionElement)
          Creates the Builder child of this tool-chain.
 ITargetPlatform createTargetPlatform(ITargetPlatform superClass, java.lang.String Id, java.lang.String name, boolean isExtensionElement)
          Creates the TargetPlatform child of this tool-chain.
 ITool createTool(ITool superClass, java.lang.String Id, java.lang.String name, boolean isExtensionElement)
          Creates a Tool child of this tool-chain.
 java.lang.String[] getArchList()
          Returns an array of architectures the tool-chain outputs can run on.
 IBuilder getBuilder()
          Returns the builder child of this tool-chain.
 IConfigurationBuildMacroSupplier getBuildMacroSupplier()
          Returns the tool-integrator provided implementation of the configuration build macro supplier or null if none.
 java.lang.String getConvertToId()
          Returns the 'convertToId' of this tool-chain
 IConfigurationEnvironmentVariableSupplier getEnvironmentVariableSupplier()
          Returns the tool-integrator provided implementation of the configuration environment variable supplier or null if none.
 java.lang.String getErrorParserIds()
          Returns the semicolon separated list of unique IDs of the error parsers associated with the tool-chain.
 java.lang.String getErrorParserIds(IConfiguration config)
          Returns the semicolon separated list of unique IDs of the error parsers associated with the tool-chain, filtered for the specified configuration.
 java.lang.String[] getErrorParserList()
          Returns the ordered list of unique IDs of the error parsers associated with the tool-chain.
 IOptionPathConverter getOptionPathConverter()
          Returns an IOptionPathConverter implementation for this toolchain or null, if no conversion is required
 java.lang.String[] getOSList()
          Returns an array of operating systems the tool-chain outputs can run on.
 IConfiguration getParent()
          Returns the configuration that is the parent of this tool-chain.
 IFolderInfo getParentFolderInfo()
           
 java.lang.String getScannerConfigDiscoveryProfileId()
          Returns the scanner config discovery profile id or null if none.
 IOutputType[] getSecondaryOutputs()
          Returns the OutputTypes in this tool-chain, besides the primary output of the targetTool, that are also considered to be build artifacts.
 IToolChain getSuperClass()
          Returns the IToolChain that is the superclass of this tool-chain, or null if the attribute was not specified.
 ITargetPlatform getTargetPlatform()
          Returns the target-platform child of this tool-chain
 org.eclipse.cdt.core.settings.model.extension.CTargetPlatformData getTargetPlatformData()
           
 java.lang.String getTargetToolIds()
          Returns the sem-colon separated list of Tool ids containing each tool that can create the final build artifact (the end target of the build).
 java.lang.String[] getTargetToolList()
          Returns the list of Tool ids containing each tool that can create the final build artifact (the end target of the build).
 ITool getTool(java.lang.String id)
          Returns the tool in this tool-chain with the ID specified in the argument, or null
 ITool[] getTools()
          Returns an array of tool children of this tool-chain
 ITool[] getToolsBySuperClassId(java.lang.String id)
          Returns the ITool in the tool-chain with the specified ID, or the tool(s) with a superclass with this id.
 java.lang.String getUniqueRealName()
           
 java.lang.String getUnusedChildren()
          Returns a semi-colon delimited list of child Ids of the superclass' children that should not be automatically inherited by this element.
 java.lang.String getVersionsSupported()
          Returns the 'versionsSupported' of this tool-chain
 boolean isAbstract()
          Returns whether this element is abstract.
 boolean isDirty()
          Returns true if this tool-chain has changes that need to be saved in the project file, else false.
 boolean isExtensionElement()
          Returns true if this tool-chain was loaded from a manifest file, and false if it was loaded from a project (.cdtbuild) file.
 boolean isSupported()
          Returns true if the tool-chain support is installed on the system otherwise returns false
 boolean isSystemObject()
           
 boolean matches(IToolChain tc)
           
 void removeLocalBuilder()
          If the tool chain is not an extension element, and it has its own Builder child, remove the builder so that the tool chain uses its superclass' Builder
 void removeLocalTargetPlatform()
          If the tool chain is not an extension element, and it has its own TargetPlatform child, remove the TargetPlatform so that the tool chain uses its superclass' TargetPlatform
 void setArchList(java.lang.String[] archs)
          Sets the architecture list.
 void setConvertToId(java.lang.String convertToId)
          Sets the 'convertToId' attribute of the tool-chain.
 void setDirty(boolean isDirty)
          Sets the element's "dirty" (have I been modified?)
 void setErrorParserIds(java.lang.String ids)
          Sets the semicolon separated list of error parser ids.
 void setIsAbstract(boolean b)
          Sets the isAbstract attribute of the tool-chain.
 void setOSList(java.lang.String[] OSs)
          Sets the OS list.
 void setScannerConfigDiscoveryProfileId(java.lang.String profileId)
          Sets the scanner config discovery profile id.
 void setSecondaryOutputs(java.lang.String ids)
          Sets the semicolon separated list of OutputType identifiers in this tool-chain, besides the primary output of the targetTool, that are also considered to be build artifacts.
 void setTargetToolIds(java.lang.String targetToolIds)
          Sets the sem-colon separated list of Tool ids containing each tool that can create the final build artifact (the end target of the build).
 void setVersionsSupported(java.lang.String versionsSupported)
          Sets the 'versionsSupported' attribute of the tool-chain.
 boolean supportsBuild(boolean managed)
           
 
Methods inherited from interface org.eclipse.cdt.managedbuilder.core.IHoldsOptions
addOptionCategory, createOption, createOptions, getChildCategories, getOption, getOptionById, getOptionBySuperClassId, getOptionCategory, getOptions, getOptionToSet, needsRebuild, removeOption, setRebuildState
 

Field Detail

TOOL_CHAIN_ELEMENT_NAME

static final java.lang.String TOOL_CHAIN_ELEMENT_NAME
See Also:
Constant Field Values

OS_LIST

static final java.lang.String OS_LIST
See Also:
Constant Field Values

ARCH_LIST

static final java.lang.String ARCH_LIST
See Also:
Constant Field Values

ERROR_PARSERS

static final java.lang.String ERROR_PARSERS
See Also:
Constant Field Values

VERSIONS_SUPPORTED

static final java.lang.String VERSIONS_SUPPORTED
See Also:
Constant Field Values

CONVERT_TO_ID

static final java.lang.String CONVERT_TO_ID
See Also:
Constant Field Values

TARGET_TOOL

static final java.lang.String TARGET_TOOL
See Also:
Constant Field Values

SECONDARY_OUTPUTS

static final java.lang.String SECONDARY_OUTPUTS
See Also:
Constant Field Values

IS_TOOL_CHAIN_SUPPORTED

static final java.lang.String IS_TOOL_CHAIN_SUPPORTED
See Also:
Constant Field Values

CONFIGURATION_ENVIRONMENT_SUPPLIER

static final java.lang.String CONFIGURATION_ENVIRONMENT_SUPPLIER
See Also:
Constant Field Values

CONFIGURATION_MACRO_SUPPLIER

static final java.lang.String CONFIGURATION_MACRO_SUPPLIER
See Also:
Constant Field Values

SUPPORTS_MANAGED_BUILD

static final java.lang.String SUPPORTS_MANAGED_BUILD
See Also:
Constant Field Values

IS_SYSTEM

static final java.lang.String IS_SYSTEM
See Also:
Constant Field Values

NON_INTERNAL_BUILDER_ID

static final java.lang.String NON_INTERNAL_BUILDER_ID
See Also:
Constant Field Values

RESOURCE_TYPE_BASED_DISCOVERY

static final java.lang.String RESOURCE_TYPE_BASED_DISCOVERY
See Also:
Constant Field Values

SCANNER_CONFIG_PROFILE_ID

static final java.lang.String SCANNER_CONFIG_PROFILE_ID
See Also:
Constant Field Values
Method Detail

getParent

IConfiguration getParent()
Returns the configuration that is the parent of this tool-chain.

Returns:
IConfiguration

createTargetPlatform

ITargetPlatform createTargetPlatform(ITargetPlatform superClass,
                                     java.lang.String Id,
                                     java.lang.String name,
                                     boolean isExtensionElement)
Creates the TargetPlatform child of this tool-chain.

Parameters:
ITargetPlatform - The superClass, if any
String - The id for the new tool chain
String - The name for the new tool chain
boolean - Indicates whether this is an extension element or a managed project element
Returns:
ITargetPlatform

getTargetPlatform

ITargetPlatform getTargetPlatform()
Returns the target-platform child of this tool-chain

Returns:
ITargetPlatform

removeLocalTargetPlatform

void removeLocalTargetPlatform()
If the tool chain is not an extension element, and it has its own TargetPlatform child, remove the TargetPlatform so that the tool chain uses its superclass' TargetPlatform


getVersionsSupported

java.lang.String getVersionsSupported()
Returns the 'versionsSupported' of this tool-chain

Returns:
String

getConvertToId

java.lang.String getConvertToId()
Returns the 'convertToId' of this tool-chain

Returns:
String

setVersionsSupported

void setVersionsSupported(java.lang.String versionsSupported)
Sets the 'versionsSupported' attribute of the tool-chain.

Parameters:
versionsSupported -

setConvertToId

void setConvertToId(java.lang.String convertToId)
Sets the 'convertToId' attribute of the tool-chain.

Parameters:
convertToId -

createBuilder

IBuilder createBuilder(IBuilder superClass,
                       java.lang.String Id,
                       java.lang.String name,
                       boolean isExtensionElement)
Creates the Builder child of this tool-chain.

Parameters:
IBuilder - The superClass, if any
String - The id for the new tool chain
String - The name for the new tool chain
boolean - Indicates whether this is an extension element or a managed project element
Returns:
IBuilder

removeLocalBuilder

void removeLocalBuilder()
If the tool chain is not an extension element, and it has its own Builder child, remove the builder so that the tool chain uses its superclass' Builder


getBuilder

IBuilder getBuilder()
Returns the builder child of this tool-chain.

Returns:
IBuilder

createTool

ITool createTool(ITool superClass,
                 java.lang.String Id,
                 java.lang.String name,
                 boolean isExtensionElement)
Creates a Tool child of this tool-chain.

Parameters:
ITool - The superClass, if any
String - The id for the new tool chain
String - The name for the new tool chain
boolean - Indicates whether this is an extension element or a managed project element
Returns:
ITool

getTools

ITool[] getTools()
Returns an array of tool children of this tool-chain

Returns:
ITool[]

getTool

ITool getTool(java.lang.String id)
Returns the tool in this tool-chain with the ID specified in the argument, or null

Parameters:
id - The ID of the requested tool
Returns:
ITool

getToolsBySuperClassId

ITool[] getToolsBySuperClassId(java.lang.String id)
Returns the ITool in the tool-chain with the specified ID, or the tool(s) with a superclass with this id.

If the tool-chain does not have a tool with that ID, the method returns an empty array. It is the responsibility of the caller to verify the return value.

Parameters:
id - unique identifier of the tool to search for
Returns:
ITool[]
Since:
3.0.2

getSuperClass

IToolChain getSuperClass()
Returns the IToolChain that is the superclass of this tool-chain, or null if the attribute was not specified.

Returns:
IToolChain

isAbstract

boolean isAbstract()
Returns whether this element is abstract. Returns false if the attribute was not specified.

Returns:
boolean

setIsAbstract

void setIsAbstract(boolean b)
Sets the isAbstract attribute of the tool-chain.

Parameters:
b -

getUnusedChildren

java.lang.String getUnusedChildren()
Returns a semi-colon delimited list of child Ids of the superclass' children that should not be automatically inherited by this element. Returns an empty string if the attribute was not specified.

Returns:
String

getOSList

java.lang.String[] getOSList()
Returns an array of operating systems the tool-chain outputs can run on.

Returns:
String[]

setOSList

void setOSList(java.lang.String[] OSs)
Sets the OS list.

Parameters:
String[] - The list of OS names

getArchList

java.lang.String[] getArchList()
Returns an array of architectures the tool-chain outputs can run on.

Returns:
String[]

setArchList

void setArchList(java.lang.String[] archs)
Sets the architecture list.

Parameters:
String[] - The list of architecture names

getErrorParserIds

java.lang.String getErrorParserIds()
Returns the semicolon separated list of unique IDs of the error parsers associated with the tool-chain.

Returns:
String

getErrorParserIds

java.lang.String getErrorParserIds(IConfiguration config)
Returns the semicolon separated list of unique IDs of the error parsers associated with the tool-chain, filtered for the specified configuration.

Parameters:
config -
Returns:
String

getErrorParserList

java.lang.String[] getErrorParserList()
Returns the ordered list of unique IDs of the error parsers associated with the tool-chain.

Returns:
String[]

setErrorParserIds

void setErrorParserIds(java.lang.String ids)
Sets the semicolon separated list of error parser ids.

Parameters:
ids -

getScannerConfigDiscoveryProfileId

java.lang.String getScannerConfigDiscoveryProfileId()
Returns the scanner config discovery profile id or null if none.

Returns:
String

setScannerConfigDiscoveryProfileId

void setScannerConfigDiscoveryProfileId(java.lang.String profileId)
Sets the scanner config discovery profile id.

Parameters:
profileId -

getTargetToolIds

java.lang.String getTargetToolIds()
Returns the sem-colon separated list of Tool ids containing each tool that can create the final build artifact (the end target of the build). MBS will use the first ID in the list that matches a Tool in the ToolChain. One reason for specifying a list, is that different versions of a tool can be selected based upon the project nature (e.g. different tool definitions for a linker for C vs. C++).

Returns:
String

setTargetToolIds

void setTargetToolIds(java.lang.String targetToolIds)
Sets the sem-colon separated list of Tool ids containing each tool that can create the final build artifact (the end target of the build).

Parameters:
targetToolIds -

getTargetToolList

java.lang.String[] getTargetToolList()
Returns the list of Tool ids containing each tool that can create the final build artifact (the end target of the build). MBS will use the first ID in the list that matches a Tool in the ToolChain. One reason for specifying a list, is that different versions of a tool can be selected based upon the project nature (e.g. different tool definitions for a linker for C vs. C++).

Returns:
String[]

getSecondaryOutputs

IOutputType[] getSecondaryOutputs()
Returns the OutputTypes in this tool-chain, besides the primary output of the targetTool, that are also considered to be build artifacts.

Returns:
IOutputType[]

setSecondaryOutputs

void setSecondaryOutputs(java.lang.String ids)
Sets the semicolon separated list of OutputType identifiers in this tool-chain, besides the primary output of the targetTool, that are also considered to be build artifacts.

Parameters:
ids -

isDirty

boolean isDirty()
Returns true if this tool-chain has changes that need to be saved in the project file, else false.

Returns:
boolean

setDirty

void setDirty(boolean isDirty)
Sets the element's "dirty" (have I been modified?) flag.

Parameters:
isDirty -

isExtensionElement

boolean isExtensionElement()
Returns true if this tool-chain was loaded from a manifest file, and false if it was loaded from a project (.cdtbuild) file.

Returns:
boolean

isSupported

boolean isSupported()
Returns true if the tool-chain support is installed on the system otherwise returns false

Returns:
boolean

getEnvironmentVariableSupplier

IConfigurationEnvironmentVariableSupplier getEnvironmentVariableSupplier()
Returns the tool-integrator provided implementation of the configuration environment variable supplier or null if none.

Returns:
IConfigurationEnvironmentVariableSupplier

getBuildMacroSupplier

IConfigurationBuildMacroSupplier getBuildMacroSupplier()
Returns the tool-integrator provided implementation of the configuration build macro supplier or null if none.

Returns:
IConfigurationBuildMacroSupplier

getOptionPathConverter

IOptionPathConverter getOptionPathConverter()
Returns an IOptionPathConverter implementation for this toolchain or null, if no conversion is required


getParentFolderInfo

IFolderInfo getParentFolderInfo()

getTargetPlatformData

org.eclipse.cdt.core.settings.model.extension.CTargetPlatformData getTargetPlatformData()

supportsBuild

boolean supportsBuild(boolean managed)

isSystemObject

boolean isSystemObject()

matches

boolean matches(IToolChain tc)

getUniqueRealName

java.lang.String getUniqueRealName()