Class AbstractLinker
- java.lang.Object
-
- net.sf.antcontrib.cpptasks.compiler.AbstractProcessor
-
- net.sf.antcontrib.cpptasks.compiler.AbstractLinker
-
- Direct Known Subclasses:
CommandLineLinker
public abstract class AbstractLinker extends AbstractProcessor implements Linker
An abstract Linker implementation.- Author:
- Adam Murdoch
-
-
Field Summary
-
Fields inherited from class net.sf.antcontrib.cpptasks.compiler.AbstractProcessor
DEFAULT_DISCARD_BID, DEFAULT_PROCESS_BID
-
-
Constructor Summary
Constructors Constructor Description AbstractLinker(java.lang.String[] objExtensions, java.lang.String[] ignoredExtensions)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addVersionFiles(VersionInfo versionInfo, LinkType linkType, java.io.File outputFile, boolean isDebug, java.io.File objDir, TargetMatcher matcher)
Adds source or object files to the bidded fileset to support version information.int
bid(java.lang.String inputFile)
Returns the bid of the processor for the file.Processor
changeEnvironment(boolean newEnvironment, org.apache.tools.ant.types.Environment env)
protected abstract LinkerConfiguration
createConfiguration(CCTask task, LinkType linkType, ProcessorDef[] baseConfigs, LinkerDef specificConfig, TargetDef targetPlatform, VersionInfo versionInfo)
ProcessorConfiguration
createConfiguration(CCTask task, LinkType linkType, ProcessorDef[] baseConfigs, ProcessorDef specificConfig, TargetDef targetPlatform, VersionInfo versionInfo)
Returns the compiler configuration foror element. java.lang.String
getLibraryKey(java.io.File libfile)
Extracts the significant part of a library name to ensure there aren't collisionsabstract java.lang.String[]
getOutputFileNames(java.lang.String fileName, VersionInfo versionInfo)
Output file name (no path components) corresponding to source file-
Methods inherited from class net.sf.antcontrib.cpptasks.compiler.AbstractProcessor
clone, getHeaderExtensions, getIdentifier, getIdentifier, getOSArch, getOSName, getSourceExtensions, isDarwin, toString
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface net.sf.antcontrib.cpptasks.compiler.Linker
getLibraryPath, getLibraryPatterns, getLinker, isCaseSensitive
-
Methods inherited from interface net.sf.antcontrib.cpptasks.compiler.Processor
getIdentifier
-
-
-
-
Method Detail
-
bid
public int bid(java.lang.String inputFile)
Returns the bid of the processor for the file. A linker will bid 1 on any unrecognized file type.- Specified by:
bid
in interfaceProcessor
- Overrides:
bid
in classAbstractProcessor
- Parameters:
inputFile
- filename of input file- Returns:
- bid for the file, 0 indicates no interest, 1 indicates that the processor recognizes the file but doesn't process it (header files, for example), 100 indicates strong interest
-
changeEnvironment
public Processor changeEnvironment(boolean newEnvironment, org.apache.tools.ant.types.Environment env)
- Specified by:
changeEnvironment
in interfaceProcessor
- Overrides:
changeEnvironment
in classAbstractProcessor
-
createConfiguration
protected abstract LinkerConfiguration createConfiguration(CCTask task, LinkType linkType, ProcessorDef[] baseConfigs, LinkerDef specificConfig, TargetDef targetPlatform, VersionInfo versionInfo)
-
createConfiguration
public ProcessorConfiguration createConfiguration(CCTask task, LinkType linkType, ProcessorDef[] baseConfigs, ProcessorDef specificConfig, TargetDef targetPlatform, VersionInfo versionInfo)
Description copied from interface:Processor
Returns the compiler configuration foror element. - Specified by:
createConfiguration
in interfaceProcessor
baseConfigs
- When specificConfig corresponds to aor linker element, defaultProvider will be a zero to two element array. If there is an extends attribute, the first element will be the referenced ProcessorDef, unless inherit = false, the last element will be the containing element specificConfig
- Aor element. - Returns:
- resulting configuration
-
getLibraryKey
public java.lang.String getLibraryKey(java.io.File libfile)
Description copied from interface:Linker
Extracts the significant part of a library name to ensure there aren't collisions- Specified by:
getLibraryKey
in interfaceLinker
-
getOutputFileNames
public abstract java.lang.String[] getOutputFileNames(java.lang.String fileName, VersionInfo versionInfo)
Description copied from interface:Processor
Output file name (no path components) corresponding to source file- Specified by:
getOutputFileNames
in interfaceProcessor
- Parameters:
fileName
- input file- Returns:
- output file name or null if no output file or name not determined by input file
-
addVersionFiles
public void addVersionFiles(VersionInfo versionInfo, LinkType linkType, java.io.File outputFile, boolean isDebug, java.io.File objDir, TargetMatcher matcher) throws java.io.IOException
Adds source or object files to the bidded fileset to support version information.- Specified by:
addVersionFiles
in interfaceLinker
- Parameters:
versionInfo
- version informationlinkType
- link typeisDebug
- true if debug buildoutputFile
- name of generated executableobjDir
- directory for generated filesmatcher
- bidded fileset- Throws:
java.io.IOException
-
-