|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sf.antcontrib.cpptasks.compiler.AbstractProcessor net.sf.antcontrib.cpptasks.compiler.AbstractLinker net.sf.antcontrib.cpptasks.compiler.CommandLineLinker
public abstract class CommandLineLinker
An abstract Linker implementation that performs the link via an external command.
Field Summary |
---|
Fields inherited from class net.sf.antcontrib.cpptasks.compiler.AbstractProcessor |
---|
DEFAULT_DISCARD_BID, DEFAULT_PROCESS_BID |
Constructor Summary | |
---|---|
CommandLineLinker(java.lang.String command,
java.lang.String identifierArg,
java.lang.String[] extensions,
java.lang.String[] ignoredExtensions,
java.lang.String outputSuffix,
boolean isLibtool,
CommandLineLinker libtoolLinker)
Creates a comand line linker invocation |
Method Summary | |
---|---|
protected abstract void |
addBase(long base,
java.util.Vector args)
|
protected abstract void |
addEntry(java.lang.String entry,
java.util.Vector args)
|
protected abstract void |
addFixed(java.lang.Boolean fixed,
java.util.Vector args)
|
protected abstract void |
addImpliedArgs(boolean debug,
LinkType linkType,
java.util.Vector args)
|
protected abstract void |
addIncremental(boolean incremental,
java.util.Vector args)
|
protected java.lang.String[] |
addLibrarySets(CCTask task,
LibrarySet[] libsets,
java.util.Vector preargs,
java.util.Vector midargs,
java.util.Vector endargs)
|
protected abstract void |
addMap(boolean map,
java.util.Vector args)
|
protected abstract void |
addStack(int stack,
java.util.Vector args)
|
protected LinkerConfiguration |
createConfiguration(CCTask task,
LinkType linkType,
ProcessorDef[] baseDefs,
LinkerDef specificDef,
TargetDef targetPlatform,
VersionInfo versionInfo)
|
protected java.lang.String |
decorateLinkerOption(java.lang.StringBuffer buf,
java.lang.String arg)
Allows drived linker to decorate linker option. |
protected java.lang.String |
getCommand()
|
protected abstract java.lang.String |
getCommandFileSwitch(java.lang.String commandFile)
|
java.lang.String |
getIdentifier()
Retrieve an identifier that identifies the specific version of the compiler. |
CommandLineLinker |
getLibtoolLinker()
|
protected abstract int |
getMaximumCommandLength()
|
java.lang.String[] |
getOutputFileNames(java.lang.String baseName,
VersionInfo versionInfo)
Output file name (no path components) corresponding to source file |
protected java.lang.String[] |
getOutputFileSwitch(CCTask task,
java.lang.String outputFile)
|
protected abstract java.lang.String[] |
getOutputFileSwitch(java.lang.String outputFile)
|
protected java.lang.String |
getStartupObject(LinkType linkType)
|
void |
link(CCTask task,
java.io.File outputFile,
java.lang.String[] sourceFiles,
CommandLineLinkerConfiguration config)
Performs a link using a command line linker |
protected java.lang.String[] |
prepareArguments(CCTask task,
java.lang.String outputDir,
java.lang.String outputFile,
java.lang.String[] sourceFiles,
CommandLineLinkerConfiguration config)
Prepares argument list for exec command. |
protected java.lang.String |
prepareFilename(java.lang.StringBuffer buf,
java.lang.String outputDir,
java.lang.String sourceFile)
Processes filename into argument form |
protected java.lang.String[] |
prepareResponseFile(java.io.File outputFile,
java.lang.String[] args)
Prepares argument list to execute the linker using a response file. |
protected java.lang.String |
quoteFilename(java.lang.StringBuffer buf,
java.lang.String filename)
|
protected int |
runCommand(CCTask task,
java.io.File workingDir,
java.lang.String[] cmdline)
This method is exposed so test classes can overload and test the arguments without actually spawning the compiler |
protected void |
setCommand(java.lang.String command)
|
Methods inherited from class net.sf.antcontrib.cpptasks.compiler.AbstractLinker |
---|
addVersionFiles, bid, changeEnvironment, createConfiguration, getLibraryKey |
Methods inherited from class net.sf.antcontrib.cpptasks.compiler.AbstractProcessor |
---|
clone, getHeaderExtensions, 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 |
Constructor Detail |
---|
public CommandLineLinker(java.lang.String command, java.lang.String identifierArg, java.lang.String[] extensions, java.lang.String[] ignoredExtensions, java.lang.String outputSuffix, boolean isLibtool, CommandLineLinker libtoolLinker)
Method Detail |
---|
protected abstract void addBase(long base, java.util.Vector args)
protected abstract void addFixed(java.lang.Boolean fixed, java.util.Vector args)
protected abstract void addImpliedArgs(boolean debug, LinkType linkType, java.util.Vector args)
protected abstract void addIncremental(boolean incremental, java.util.Vector args)
protected java.lang.String[] addLibrarySets(CCTask task, LibrarySet[] libsets, java.util.Vector preargs, java.util.Vector midargs, java.util.Vector endargs)
protected abstract void addMap(boolean map, java.util.Vector args)
protected abstract void addStack(int stack, java.util.Vector args)
protected abstract void addEntry(java.lang.String entry, java.util.Vector args)
protected LinkerConfiguration createConfiguration(CCTask task, LinkType linkType, ProcessorDef[] baseDefs, LinkerDef specificDef, TargetDef targetPlatform, VersionInfo versionInfo)
createConfiguration
in class AbstractLinker
protected java.lang.String decorateLinkerOption(java.lang.StringBuffer buf, java.lang.String arg)
buf
- buffer that may be used and abused in the decoration process,
must not be null.arg
- linker argumentprotected final java.lang.String getCommand()
protected abstract java.lang.String getCommandFileSwitch(java.lang.String commandFile)
public java.lang.String getIdentifier()
Processor
getIdentifier
in interface Processor
getIdentifier
in class AbstractProcessor
public final CommandLineLinker getLibtoolLinker()
protected abstract int getMaximumCommandLength()
public java.lang.String[] getOutputFileNames(java.lang.String baseName, VersionInfo versionInfo)
Processor
getOutputFileNames
in interface Processor
getOutputFileNames
in class AbstractLinker
baseName
- input file
protected java.lang.String[] getOutputFileSwitch(CCTask task, java.lang.String outputFile)
protected abstract java.lang.String[] getOutputFileSwitch(java.lang.String outputFile)
protected java.lang.String getStartupObject(LinkType linkType)
public void link(CCTask task, java.io.File outputFile, java.lang.String[] sourceFiles, CommandLineLinkerConfiguration config) throws org.apache.tools.ant.BuildException
org.apache.tools.ant.BuildException
protected java.lang.String[] prepareArguments(CCTask task, java.lang.String outputDir, java.lang.String outputFile, java.lang.String[] sourceFiles, CommandLineLinkerConfiguration config)
task
- compilation task.outputFile
- linker output filesourceFiles
- linker input files (.obj, .o, .res)config
- linker configuration
protected java.lang.String prepareFilename(java.lang.StringBuffer buf, java.lang.String outputDir, java.lang.String sourceFile)
protected java.lang.String[] prepareResponseFile(java.io.File outputFile, java.lang.String[] args) throws java.io.IOException
outputFile
- linker output fileargs
- output of prepareArguments
java.io.IOException
protected java.lang.String quoteFilename(java.lang.StringBuffer buf, java.lang.String filename)
protected int runCommand(CCTask task, java.io.File workingDir, java.lang.String[] cmdline) throws org.apache.tools.ant.BuildException
org.apache.tools.ant.BuildException
protected final void setCommand(java.lang.String command)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |