com.github.maven_nar.cpptasks.gcc
Class AbstractArLibrarian

java.lang.Object
  extended by com.github.maven_nar.cpptasks.compiler.AbstractProcessor
      extended by com.github.maven_nar.cpptasks.compiler.AbstractLinker
          extended by com.github.maven_nar.cpptasks.compiler.CommandLineLinker
              extended by com.github.maven_nar.cpptasks.gcc.AbstractArLibrarian
All Implemented Interfaces:
Linker, Processor, Cloneable
Direct Known Subclasses:
GccLibrarian, GccLibrarian, GccLibrarian

public abstract class AbstractArLibrarian
extends CommandLineLinker

Adapter for the "ar" tool

Author:
Adam Murdoch, Curt Arnold

Field Summary
 
Fields inherited from class com.github.maven_nar.cpptasks.compiler.AbstractProcessor
DEFAULT_DISCARD_BID, DEFAULT_PROCESS_BID
 
Constructor Summary
protected AbstractArLibrarian(String command, String identificationArg, String[] inputExtensions, String[] ignoredExtensions, String outputPrefix, String outputExtension, boolean isLibtool, AbstractArLibrarian libtoolLibrarian)
           
 
Method Summary
 String getCommandFileSwitch(String commandFile)
           
 File[] getLibraryPath()
          returns the library path for the linker
 String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType)
          Returns a set of filename patterns corresponding to library names.
 int getMaximumCommandLength()
           
 String[] getOutputFileNames(String baseName, VersionInfo versionInfo)
          Output file name (no path components) corresponding to source file
 String[] getOutputFileSwitch(String outputFile)
           
 boolean isCaseSensitive()
          Returns true if the linker is case-sensitive
 void link(CCTask task, File outputFile, String[] sourceFiles, CommandLineLinkerConfiguration config)
          Performs a link using a command line linker
 
Methods inherited from class com.github.maven_nar.cpptasks.compiler.CommandLineLinker
addBase, addEntry, addFixed, addImpliedArgs, addIncremental, addLibrarySets, addMap, addStack, createConfiguration, decorateLinkerOption, getCommand, getCommandWithPath, getIdentifier, getLibtoolLinker, getOutputFileSwitch, getStartupObject, prepareArguments, prepareFilename, prepareResponseFile, quoteFilename, runCommand, setCommand
 
Methods inherited from class com.github.maven_nar.cpptasks.compiler.AbstractLinker
addVersionFiles, bid, changeEnvironment, createConfiguration, getLibraryKey
 
Methods inherited from class com.github.maven_nar.cpptasks.compiler.AbstractProcessor
clone, getHeaderExtensions, getIdentifier, getOSArch, getOSName, getSourceExtensions, isDarwin, isWindows, toString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.github.maven_nar.cpptasks.compiler.Linker
getLinker
 

Constructor Detail

AbstractArLibrarian

protected AbstractArLibrarian(String command,
                              String identificationArg,
                              String[] inputExtensions,
                              String[] ignoredExtensions,
                              String outputPrefix,
                              String outputExtension,
                              boolean isLibtool,
                              AbstractArLibrarian libtoolLibrarian)
Method Detail

getCommandFileSwitch

public String getCommandFileSwitch(String commandFile)
Specified by:
getCommandFileSwitch in class CommandLineLinker

getLibraryPath

public File[] getLibraryPath()
Description copied from interface: Linker
returns the library path for the linker


getLibraryPatterns

public String[] getLibraryPatterns(String[] libnames,
                                   LibraryTypeEnum libType)
Description copied from interface: Linker
Returns a set of filename patterns corresponding to library names. For example, "advapi32" would be expanded to "advapi32.dll" by DevStudioLinker and to "libadvapi32.a" and "libadvapi32.so" by GccLinker.

Parameters:
libnames - array of library names

getMaximumCommandLength

public int getMaximumCommandLength()
Specified by:
getMaximumCommandLength in class CommandLineLinker

getOutputFileNames

public String[] getOutputFileNames(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
Overrides:
getOutputFileNames in class CommandLineLinker
Parameters:
baseName - input file
Returns:
output file name or null if no output file or name not determined by input file

getOutputFileSwitch

public String[] getOutputFileSwitch(String outputFile)
Specified by:
getOutputFileSwitch in class CommandLineLinker

isCaseSensitive

public boolean isCaseSensitive()
Description copied from interface: Linker
Returns true if the linker is case-sensitive


link

public void link(CCTask task,
                 File outputFile,
                 String[] sourceFiles,
                 CommandLineLinkerConfiguration config)
          throws org.apache.tools.ant.BuildException
Description copied from class: CommandLineLinker
Performs a link using a command line linker

Overrides:
link in class CommandLineLinker
Throws:
org.apache.tools.ant.BuildException


Copyright © 2002-2013 The Apache Software Foundation. All Rights Reserved.