Class AbstractLinker

java.lang.Object
net.sf.antcontrib.cpptasks.compiler.AbstractProcessor
net.sf.antcontrib.cpptasks.compiler.AbstractLinker
All Implemented Interfaces:
Cloneable, Linker, Processor
Direct Known Subclasses:
CommandLineLinker

public abstract class AbstractLinker extends AbstractProcessor implements Linker
An abstract Linker implementation.
Author:
Adam Murdoch
  • Constructor Details

    • AbstractLinker

      public AbstractLinker(String[] objExtensions, String[] ignoredExtensions)
  • Method Details

    • bid

      public int bid(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 interface Processor
      Overrides:
      bid in class AbstractProcessor
      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 interface Processor
      Overrides:
      changeEnvironment in class AbstractProcessor
    • 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 for or element.
      Specified by:
      createConfiguration in interface Processor
      baseConfigs - When specificConfig corresponds to a or 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 - A or element.
      Returns:
      resulting configuration
    • getLibraryKey

      public String getLibraryKey(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 interface Linker
    • getOutputFileNames

      public abstract String[] getOutputFileNames(String fileName, VersionInfo versionInfo)
      Description copied from interface: Processor
      Output file name (no path components) corresponding to source file
      Specified by:
      getOutputFileNames in interface Processor
      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, File outputFile, boolean isDebug, File objDir, TargetMatcher matcher) throws IOException
      Adds source or object files to the bidded fileset to support version information.
      Specified by:
      addVersionFiles in interface Linker
      Parameters:
      versionInfo - version information
      linkType - link type
      isDebug - true if debug build
      outputFile - name of generated executable
      objDir - directory for generated files
      matcher - bidded fileset
      Throws:
      IOException