Managed Build Definitions

org.eclipse.cdt.managedbuilder.core.buildDefinitions

This extension point was added in CDT 2.1

The managed build object model describes project-types, configurations, tool-chains, etc. for the managed build system.

<!ELEMENT extension (projectType* , configuration* , toolChain* , tool* , targetPlatform* , builder* , dynamicElementProvider* , managedBuildRevision?)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT projectType (configuration*)>

<!ATTLIST projectType

id                         CDATA #REQUIRED

name                       CDATA #REQUIRED

superClass                 CDATA #IMPLIED

isAbstract                 (true | false) "false"

unusedChildren             CDATA #IMPLIED

isTest                     (true | false)

projectEnvironmentSupplier CDATA #IMPLIED

projectMacroSupplier       CDATA #IMPLIED

configurationNameProvider  CDATA #IMPLIED>

Represents a class of project which acts as a template for the projects that the user will create, for example, a Linux static library. A project type contains a sequence of configurations. Project types are arranged in an inheritance hierarchy where a project type inherits the list of configurations from it's parent and can add to or override configurations in this list.



<!ELEMENT project (configuration+)>

<!ATTLIST project

name        CDATA #REQUIRED

projectType CDATA #REQUIRED>

The project element is an instance of a projectType element. It appears in the .cdtbuild file, not in an extension definition.



<!ELEMENT configuration (toolChain , resourceConfiguration*)>

<!ATTLIST configuration

id                    CDATA #REQUIRED

name                  CDATA #IMPLIED

parent                CDATA #IMPLIED

artifactName          CDATA #IMPLIED

artifactExtension     CDATA #IMPLIED

cleanCommand          CDATA #IMPLIED

errorParsers          CDATA #IMPLIED

prebuildStep          CDATA #IMPLIED

postbuildStep         CDATA #IMPLIED

preannouncebuildStep  CDATA #IMPLIED

postannouncebuildStep CDATA #IMPLIED

description           CDATA #IMPLIED>

A configuration is used to gather together certain default tools and options to build project a certain way. For example, a "Debug" configuration might supply tools with the options set to build with debugging symbols, whereas a "Release" configuration would supply tools with options set to create the best performance.



<!ELEMENT toolChain (tool+ , targetPlatform , builder , optionCategory* , option*)>

<!ATTLIST toolChain

id                               CDATA #REQUIRED

name                             CDATA #IMPLIED

superClass                       CDATA #IMPLIED

isAbstract                       (true | false) "false"

unusedChildren                   CDATA #IMPLIED

osList                           CDATA #IMPLIED

archList                         CDATA #IMPLIED

errorParsers                     CDATA #IMPLIED

scannerConfigDiscoveryProfileId  CDATA #IMPLIED

targetTool                       CDATA #IMPLIED

secondaryOutputs                 CDATA #IMPLIED

isToolChainSupported             CDATA #IMPLIED

configurationEnvironmentSupplier CDATA #IMPLIED

configurationMacroSupplier       CDATA #IMPLIED

versionsSupported                CDATA #IMPLIED

convertToId                      CDATA #IMPLIED>

A tool-integrator-defined, ordered set of tools that tranform the project's resources into the project's outputs. A tool-chain can be defined as part of a configuration, or as an independent specification that is referenced from a separate configuration via the tool-chain superClass attribute.



<!ELEMENT resourceConfiguration (tool+)>

<!ATTLIST resourceConfiguration

resourcePath      CDATA #REQUIRED

exclude           (true | false)

rcbsApplicability (before|after|override|disable)

toolsToInvoke     CDATA #IMPLIED>

A place to store build attributes of individual resources that are different from the configuration as a whole.



<!ELEMENT tool (option+ , optionCategory+ , inputType* , outputType* , envVarBuildPath*)>

<!ATTLIST tool

id                    CDATA #REQUIRED

name                  CDATA #IMPLIED

superClass            CDATA #IMPLIED

isAbstract            (true | false) "false"

unusedChildren        CDATA #IMPLIED

sources               CDATA #IMPLIED

headerExtensions      CDATA #IMPLIED

outputs               CDATA #IMPLIED

outputFlag            CDATA #IMPLIED

outputPrefix          CDATA #IMPLIED

natureFilter          (cnature|ccnature|both)

command               CDATA #IMPLIED

commandLinePattern    CDATA #IMPLIED

commandLineGenerator  CDATA #IMPLIED

dependencyCalculator  CDATA #IMPLIED

errorParsers          CDATA #IMPLIED

advancedInputCategory (true | false)

customBuildStep       (true | false)

announcement          CDATA #IMPLIED

icon                  CDATA #IMPLIED

versionsSupported     CDATA #IMPLIED

convertToId           CDATA #IMPLIED>

Defines a tool used in the build process.



<!ELEMENT inputType (inputOrder* , additionalInput*)>

<!ATTLIST inputType

id                    CDATA #REQUIRED

name                  CDATA #IMPLIED

superClass            CDATA #IMPLIED

sourceContentType     CDATA #IMPLIED

sources               CDATA #IMPLIED

dependencyContentType CDATA #IMPLIED

dependencyExtensions  CDATA #IMPLIED

option                CDATA #IMPLIED

assignToOption        CDATA #IMPLIED

multipleOfType        (true | false)

primaryInput          (true | false)

dependencyCalculator  CDATA #IMPLIED

buildVariable         CDATA #IMPLIED>

Defines a type of input for the tool. Note that the calculated dependencies of an input type are not described by a separate input type, but are described by attributes of this element.



<!ELEMENT inputOrder EMPTY>

<!ATTLIST inputOrder

path     CDATA #REQUIRED

order    CDATA #IMPLIED

excluded (true | false) >

Describes optional, ordering, information regarding the inputs of an inputType. Note: This element is not yet implemented



<!ELEMENT additionalInput EMPTY>

<!ATTLIST additionalInput

paths CDATA #REQUIRED

kind  (additionalinput|additionalinputdependency|additionaldependency) >

Describes optional information regarding additional inputs and/or dependencies.



<!ELEMENT outputType EMPTY>

<!ATTLIST outputType

id                CDATA #REQUIRED

name              CDATA #IMPLIED

superClass        CDATA #IMPLIED

outputContentType CDATA #IMPLIED

outputs           CDATA #IMPLIED

option            CDATA #IMPLIED

multipleOfType    (true | false)

primaryInputType  CDATA #IMPLIED

primaryOutput     (true | false)

outputPrefix      CDATA #IMPLIED

outputNames       CDATA #IMPLIED

namePattern       CDATA #IMPLIED

nameProvider      CDATA #IMPLIED

buildVariable     CDATA #IMPLIED>

Defines a type of output for the tool.



<!ELEMENT optionCategory EMPTY>

<!ATTLIST optionCategory

id    CDATA #REQUIRED

name  CDATA #REQUIRED

owner CDATA #IMPLIED

icon  CDATA #IMPLIED>

An optional, but useful, mechanism for grouping options together.



<!ELEMENT option (enumeratedOptionValue* | listOptionValue*)>

<!ATTLIST option

id                        CDATA #REQUIRED

name                      CDATA #IMPLIED

superClass                CDATA #IMPLIED

isAbstract                (true | false) "false"

unusedChildren            CDATA #IMPLIED

category                  CDATA #IMPLIED

resourceFilter            (project|file|all) "all"

valueType                 (string|stringList|boolean|enumerated|includePath|definedSymbols|libs|userObjs) "string"

browseType                (none|file|directory)

value                     CDATA #IMPLIED

defaultValue              CDATA #IMPLIED

command                   CDATA #IMPLIED

commandFalse              CDATA #IMPLIED

helpSupplier              CDATA #IMPLIED

tip                       CDATA #IMPLIED

valueHandler              CDATA #IMPLIED

valueHandlerExtraArgument CDATA #IMPLIED

applicabilityCalculator   CDATA #IMPLIED>

An option is associated with a tool. Options can contain boolean values, a simple text string, a selection from an enumerated list, or a list of values. Options also map the value they contain to a command-line flag, such as '-g' in the case of debugging symbol information for compilers. Options can also be associated with a toolchain. However in such a case the option must be contained in a optionCategory.



<!ELEMENT enumeratedOptionValue EMPTY>

<!ATTLIST enumeratedOptionValue

id        CDATA #REQUIRED

name      CDATA #REQUIRED

isDefault (true | false)

command   CDATA #IMPLIED>

Defines a single value of an enumerated option.



<!ELEMENT listOptionValue EMPTY>

<!ATTLIST listOptionValue

value   CDATA #REQUIRED

builtIn (true | false) >

A value for defining individual elements of a list option.



<!ELEMENT builder EMPTY>

<!ATTLIST builder

id                           CDATA #REQUIRED

name                         CDATA #IMPLIED

superClass                   CDATA #IMPLIED

isAbstract                   (true | false) "false"

unusedChildren               CDATA #IMPLIED

command                      CDATA #IMPLIED

arguments                    CDATA #IMPLIED

buildfileGenerator           CDATA #IMPLIED

errorParsers                 CDATA #IMPLIED

variableFormat               CDATA #IMPLIED

isVariableCaseSensitive      (true | false) "false"

reservedMacroNames           CDATA #IMPLIED

reservedMacroNameSupplier    CDATA #IMPLIED

macroInputFileNameValue      CDATA #IMPLIED

macroInputFileExtValue       CDATA #IMPLIED

macroInputFileBaseNameValue  CDATA #IMPLIED

macroInputFileRelPathValue   CDATA #IMPLIED

macroInputDirRelPathValue    CDATA #IMPLIED

macroOutputFileNameValue     CDATA #IMPLIED

macroOutputFileExtValue      CDATA #IMPLIED

macroOutputFileBaseNameValue CDATA #IMPLIED

macroOutputFileRelPathValue  CDATA #IMPLIED

macroOutputDirRelPathValue   CDATA #IMPLIED

versionsSupported            CDATA #IMPLIED

convertToId                  CDATA #IMPLIED>

Represents the utility that drives the build process (typically, but not necessarily, a variant of "make").



<!ELEMENT targetPlatform EMPTY>

<!ATTLIST targetPlatform

id             CDATA #REQUIRED

name           CDATA #IMPLIED

superClass     CDATA #IMPLIED

isAbstract     (true | false) "false"

unusedChildren CDATA #IMPLIED

osList         CDATA #IMPLIED

archList       CDATA #IMPLIED

binaryParser   CDATA #IMPLIED>

Represents the os/architecture combination(s) upon which the outputs of a tool-chain can be deployed.



<!ELEMENT dynamicElementProvider EMPTY>

<!ATTLIST dynamicElementProvider

class CDATA #REQUIRED

name  CDATA #REQUIRED>

An optional element that allows a tool implementor to supply a class that creates one or more dynamic toolchain elements. For example, the class might create a new tool reference based on the contents of a special file, and a new target that uses that reference.



<!ELEMENT managedBuildRevision EMPTY>

<!ATTLIST managedBuildRevision

fileVersion CDATA #REQUIRED>

Version identifier for the managed build extension point. It is a string representation, consisting of three (3) tokens separated by a decimal point. The 3 tokens are positive integer numbers. For example, the following are valid version identifiers:



<!ELEMENT envVarBuildPath EMPTY>

<!ATTLIST envVarBuildPath

pathType          (buildpathInclude|buildpathLibrary)

variableList      CDATA #REQUIRED

pathDelimiter     CDATA #IMPLIED

buildPathResolver CDATA #IMPLIED>

Defines a set of environment variables used by a tool to represent the build paths (include paths or library paths).



[Enter examples here.]

[Enter API information here.]

An implementation of this extension point is supplied in org.eclipse.cdt.ui