Package net.sf.antcontrib.cpptasks
Class LinkerDef
- java.lang.Object
-
- org.apache.tools.ant.ProjectComponent
-
- org.apache.tools.ant.types.DataType
-
- net.sf.antcontrib.cpptasks.ProcessorDef
-
- net.sf.antcontrib.cpptasks.LinkerDef
-
- All Implemented Interfaces:
java.lang.Cloneable
public class LinkerDef extends ProcessorDef
A linker definition. linker elements may be placed either as children of a cc element or the project element. A linker element with an id attribute may be referenced by linker elements with refid or extends attributes.- Author:
- Adam Murdoch, Curt Arnold
-
-
Field Summary
-
Fields inherited from class net.sf.antcontrib.cpptasks.ProcessorDef
newEnvironment
-
-
Constructor Summary
Constructors Constructor Description LinkerDef()Default constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddConfiguredLinkerArg(LinkerArgument arg)Adds a linker command-line arg.voidaddConfiguredLinkerParam(LinkerParam param)Adds a compiler command-line arg.voidaddLibset(LibrarySet libset)Adds a system library set.voidaddSyslibset(SystemLibrarySet libset)Adds a system library set.voidexecute()LibrarySet[]getActiveLibrarySets(LinkerDef[] defaultProviders, int index)Returns an array of active library sets for this linker definition.LibrarySet[]getActiveSystemLibrarySets(LinkerDef[] defaultProviders, int index)Returns an array of active library sets for this linker definition.LibrarySet[]getActiveUserLibrarySets(LinkerDef[] defaultProviders, int index)Returns an array of active library sets for this linker definition.longgetBase(LinkerDef[] defaultProviders, int index)java.lang.StringgetEntry(LinkerDef[] defaultProviders, int index)java.lang.BooleangetFixed(LinkerDef[] defaultProviders, int index)booleangetIncremental(LinkerDef[] defaultProviders, int index)booleangetMap(LinkerDef[] defaultProviders, int index)ProcessorgetProcessor()Obtains the appropriate processor (compiler, linker)ProcessorgetProcessor(LinkType linkType)Obtains the appropriate processor (compiler, linker) based on the LinkType.intgetStack(LinkerDef[] defaultProviders, int index)voidsetBase(FlexLong base)Sets the base address.voidsetEntry(java.lang.String entry)Sets the starting address.voidsetFixed(boolean fixed)If true, marks the file to be loaded only at its preferred address.voidsetIncremental(boolean incremental)If true, allows incremental linking.voidsetMap(boolean map)If set to true, a map file will be produced.voidsetName(LinkerEnum name)Sets linker type.protected voidsetProcessor(Processor proc)Sets the processorvoidsetStack(org.apache.tools.ant.types.FlexInteger stack)Sets stack size in bytes.voidvisitSystemLibraries(Linker linker, FileVisitor libraryVisitor)voidvisitUserLibraries(Linker linker, FileVisitor libraryVisitor)-
Methods inherited from class net.sf.antcontrib.cpptasks.ProcessorDef
addConfiguredProcessorArg, addConfiguredProcessorParam, addEnv, addFileset, booleanValueOf, createConfiguration, getActiveProcessorArgs, getActiveProcessorParams, getDebug, getDefaultProviders, getExtends, getInherit, getLibtool, getRebuild, hasFileSets, isActive, setClassname, setDebug, setDescription, setExtends, setId, setIf, setInherit, setLibtool, setNewenvironment, setRebuild, setRefid, setUnless, visitFiles
-
Methods inherited from class org.apache.tools.ant.types.DataType
checkAttributesAllowed, checkChildrenAllowed, circularReference, clone, dieOnCircularReference, dieOnCircularReference, dieOnCircularReference, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getDataTypeName, getRefid, invokeCircularReferenceCheck, isChecked, isReference, noChildrenAllowed, pushAndInvokeCircularReferenceCheck, setChecked, tooManyAttributes, toString
-
-
-
-
Method Detail
-
addConfiguredLinkerArg
public void addConfiguredLinkerArg(LinkerArgument arg)
Adds a linker command-line arg.
-
addConfiguredLinkerParam
public void addConfiguredLinkerParam(LinkerParam param)
Adds a compiler command-line arg.
-
addLibset
public void addLibset(LibrarySet libset)
Adds a system library set.
-
addSyslibset
public void addSyslibset(SystemLibrarySet libset)
Adds a system library set.
-
execute
public void execute() throws org.apache.tools.ant.BuildException- Throws:
org.apache.tools.ant.BuildException
-
getActiveLibrarySets
public LibrarySet[] getActiveLibrarySets(LinkerDef[] defaultProviders, int index)
Returns an array of active library sets for this linker definition.
-
getActiveSystemLibrarySets
public LibrarySet[] getActiveSystemLibrarySets(LinkerDef[] defaultProviders, int index)
Returns an array of active library sets for this linker definition.
-
getActiveUserLibrarySets
public LibrarySet[] getActiveUserLibrarySets(LinkerDef[] defaultProviders, int index)
Returns an array of active library sets for this linker definition.
-
getBase
public long getBase(LinkerDef[] defaultProviders, int index)
-
getFixed
public java.lang.Boolean getFixed(LinkerDef[] defaultProviders, int index)
-
getIncremental
public boolean getIncremental(LinkerDef[] defaultProviders, int index)
-
getMap
public boolean getMap(LinkerDef[] defaultProviders, int index)
-
getEntry
public java.lang.String getEntry(LinkerDef[] defaultProviders, int index)
-
getProcessor
public Processor getProcessor()
Description copied from class:ProcessorDefObtains the appropriate processor (compiler, linker)- Overrides:
getProcessorin classProcessorDef- Returns:
- processor
-
getProcessor
public Processor getProcessor(LinkType linkType)
Description copied from class:ProcessorDefObtains the appropriate processor (compiler, linker) based on the LinkType.- Overrides:
getProcessorin classProcessorDef- Returns:
- processor
-
getStack
public int getStack(LinkerDef[] defaultProviders, int index)
-
setBase
public void setBase(FlexLong base)
Sets the base address. May be specified in either decimal or hex.- Parameters:
base- base address
-
setEntry
public void setEntry(java.lang.String entry)
Sets the starting address.- Parameters:
entry- function name
-
setFixed
public void setFixed(boolean fixed)
If true, marks the file to be loaded only at its preferred address.
-
setIncremental
public void setIncremental(boolean incremental)
If true, allows incremental linking.
-
setMap
public void setMap(boolean map)
If set to true, a map file will be produced.
-
setName
public void setName(LinkerEnum name) throws org.apache.tools.ant.BuildException
Sets linker type.Supported linkers
gcc Gcc Linker g++ G++ Linker ld Ld Linker ar Gcc Librarian msvc Microsoft Linker bcc Borland Linker df Compaq Visual Fortran Linker icl Intel Linker for Windows (IA-32) ecl Intel Linker for Windows (IA-64) icc Intel Linker for Linux (IA-32) ecc Intel Linker for Linux (IA-64) CC Sun ONE Linker aCC HP aC++ Linker os390 OS390 Linker os390batch OS390 Linker os400 IccLinker sunc89 C89 Linker xlC VisualAge Linker wcl OpenWatcom C/C++ linker wfl OpenWatcom FORTRAN linker - Throws:
org.apache.tools.ant.BuildException
-
setProcessor
protected void setProcessor(Processor proc) throws org.apache.tools.ant.BuildException
Description copied from class:ProcessorDefSets the processor- Overrides:
setProcessorin classProcessorDef- Parameters:
proc- processor, may not be null.- Throws:
org.apache.tools.ant.BuildException- if ProcessorDef is a reference
-
setStack
public void setStack(org.apache.tools.ant.types.FlexInteger stack)
Sets stack size in bytes.
-
visitSystemLibraries
public void visitSystemLibraries(Linker linker, FileVisitor libraryVisitor)
-
visitUserLibraries
public void visitUserLibraries(Linker linker, FileVisitor libraryVisitor)
-
-