CommandLineLinker (cpptasks 1.0b5 API)
Keywords: net.sf.antcontrib.cpptasks.compiler.CommandLineLinker class

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## net.sf.antcontrib.cpptasks.compiler
Class CommandLineLinker

    java.lang.Object
      net.sf.antcontrib.cpptasks.compiler.AbstractProcessor
          net.sf.antcontrib.cpptasks.compiler.AbstractLinker
              net.sf.antcontrib.cpptasks.compiler.CommandLineLinker

All Implemented Interfaces:
  java.lang.Cloneable, Linker, Processor

Direct Known Subclasses:
  AbstractArLibrarian, AbstractLdLinker, ADSLibrarian, ADSLinker, BorlandLibrarian, BorlandLinker, C89Linker, ClxxLibrarian, ClxxLinker, CompaqVisualFortranLibrarian, DevStudioCompatibleLibrarian, DevStudioCompatibleLinker, IccLinker, OpenWatcomLibrarian, OpenWatcomLinker, OS390Linker

    public abstract class CommandLineLinker

extends AbstractLinker

An abstract Linker implementation that performs the link via an external command.

Author:
  Adam Murdoch

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

### CommandLineLinker

    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)

  Creates a comand line linker invocation

Method Detail

### addBase

    protected abstract void addBase(long base,
                                    java.util.Vector args)

### addFixed

    protected abstract void addFixed(java.lang.Boolean fixed,
                                     java.util.Vector args)

### addImpliedArgs

    protected abstract void addImpliedArgs(boolean debug,
                                           LinkType linkType,
                                           java.util.Vector args)

### addIncremental

    protected abstract void addIncremental(boolean incremental,
                                           java.util.Vector args)

### addLibrarySets

    protected java.lang.String[] addLibrarySets(CCTask task,
                                                LibrarySet[] libsets,
                                                java.util.Vector preargs,
                                                java.util.Vector midargs,
                                                java.util.Vector endargs)

### addMap

    protected abstract void addMap(boolean map,
                                   java.util.Vector args)

### addStack

    protected abstract void addStack(int stack,
                                     java.util.Vector args)

### addEntry

    protected abstract void addEntry(java.lang.String entry,
                                     java.util.Vector args)

### createConfiguration

    protected LinkerConfiguration createConfiguration(CCTask task,
                                                      LinkType linkType,
                                                      ProcessorDef[] baseDefs,
                                                      LinkerDef specificDef,
                                                      TargetDef targetPlatform,
                                                      VersionInfo versionInfo)

  Specified by:
    `createConfiguration` in class `AbstractLinker`

### decorateLinkerOption

    protected java.lang.String decorateLinkerOption(java.lang.StringBuffer buf,
                                                    java.lang.String arg)

  Allows drived linker to decorate linker option. Override by GccLinker to prepend a "-Wl," to pass option to through gcc to linker.

  Parameters:
    `buf` - buffer that may be used and abused in the decoration process, must not be null.
    `arg` - linker argument

### getCommand

    protected final java.lang.String getCommand()

### getCommandFileSwitch

    protected abstract java.lang.String getCommandFileSwitch(java.lang.String commandFile)

### getIdentifier

    public java.lang.String getIdentifier()

  Description copied from interface: `Processor`
  Retrieve an identifier that identifies the specific version of the compiler. Compilers with the same identifier should produce the same output files for the same input files and command line switches.

  Specified by:
    `getIdentifier` in interface `Processor`
  Specified by:
    `getIdentifier` in class `AbstractProcessor`

### getLibtoolLinker

    public final CommandLineLinker getLibtoolLinker()

### getMaximumCommandLength

    protected abstract int getMaximumCommandLength()

### getOutputFileNames

    public java.lang.String[] getOutputFileNames(java.lang.String baseName,
                                                 VersionInfo versionInfo)

  Description copied from interface: `Processor`
  Output file name (no path components) corresponding to source file

  Specified by:
    `getOutputFileNames` in interface `Processor`
  Specified by:
    `getOutputFileNames` in class `AbstractLinker`
  Parameters:
    `baseName` - input file
  Returns:
    output file name or null if no output file or name not determined by input file

### getOutputFileSwitch

    protected java.lang.String[] getOutputFileSwitch(CCTask task,
                                                     java.lang.String outputFile)

### getOutputFileSwitch

    protected abstract java.lang.String[] getOutputFileSwitch(java.lang.String outputFile)

### getStartupObject

    protected java.lang.String getStartupObject(LinkType linkType)

### link

    public void link(CCTask task,
                     java.io.File outputFile,
                     java.lang.String[] sourceFiles,
                     CommandLineLinkerConfiguration config)
              throws org.apache.tools.ant.BuildException

  Performs a link using a command line linker

  Throws:
    `org.apache.tools.ant.BuildException`

### prepareArguments

    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. Will return null if command line would exceed allowable command line buffer.

  Parameters:
    `task` - compilation task.
    `outputFile` - linker output file
    `sourceFiles` - linker input files (.obj, .o, .res)
    `config` - linker configuration
  Returns:
    arguments for runTask

### prepareFilename

    protected java.lang.String prepareFilename(java.lang.StringBuffer buf,
                                               java.lang.String outputDir,
                                               java.lang.String sourceFile)

  Processes filename into argument form

### prepareResponseFile

    protected java.lang.String[] prepareResponseFile(java.io.File outputFile,
                                                     java.lang.String[] args)
                                              throws java.io.IOException

  Prepares argument list to execute the linker using a response file.

  Parameters:
    `outputFile` - linker output file
    `args` - output of prepareArguments
  Returns:
    arguments for runTask
  Throws:
    `java.io.IOException`

### quoteFilename

    protected java.lang.String quoteFilename(java.lang.StringBuffer buf,
                                             java.lang.String filename)

### runCommand

    protected int runCommand(CCTask task,
                             java.io.File workingDir,
                             java.lang.String[] cmdline)
                      throws org.apache.tools.ant.BuildException

  This method is exposed so test classes can overload and test the arguments without actually spawning the compiler

  Throws:
    `org.apache.tools.ant.BuildException`

### setCommand

    protected final void setCommand(java.lang.String command)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2008 Ant-Contrib Project. All Rights Reserved.