net.sf.antcontrib.cpptasks.borland

Class BorlandLibrarian

Implemented Interfaces:
Cloneable, Linker, Processor

public class BorlandLibrarian
extends CommandLineLinker

Adapter for the Borland(r) tlib Librarian
Author:
Curt Arnold

Field Summary

Fields inherited from class net.sf.antcontrib.cpptasks.compiler.AbstractProcessor

DEFAULT_DISCARD_BID, DEFAULT_PROCESS_BID

Method Summary

protected void
addBase(long base, Vector args)
protected void
addEntry(String entry, Vector args)
protected void
addFixed(Boolean fixed, Vector args)
protected void
addImpliedArgs(boolean debug, LinkType linkType, Vector args)
protected void
addIncremental(boolean incremental, Vector args)
protected void
addMap(boolean map, Vector args)
protected void
addStack(int stack, Vector args)
protected String
getCommandFileSwitch(String cmdFile)
String
getIdentifier()
Gets identifier for the linker.
static BorlandLibrarian
getInstance()
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.
Linker
getLinker(LinkType type)
Gets the linker for the specified link type.
int
getMaximumCommandLength()
String[]
getOutputFileSwitch(String outFile)
boolean
isCaseSensitive()
Returns true if the linker is case-sensitive
void
link(CCTask task, File outputFile, String[] sourceFiles, CommandLineLinkerConfiguration config)
Builds a library
protected String[]
prepareArguments(CCTask task, String outputDir, String outputName, String[] sourceFiles, CommandLineLinkerConfiguration config)
Prepares argument list for exec command.
protected String[]
prepareResponseFile(File outputFile, String[] args)
Prepares argument list to execute the linker using a response file.
protected String
quoteFilename(StringBuffer buf, String filename)
Encloses problematic file names within quotes.

Methods inherited from class net.sf.antcontrib.cpptasks.compiler.CommandLineLinker

addBase, addEntry, addFixed, addImpliedArgs, addIncremental, addLibrarySets, addMap, addStack, createConfiguration, decorateLinkerOption, getCommand, getCommandFileSwitch, getIdentifier, getLibtoolLinker, getMaximumCommandLength, getOutputFileNames, getOutputFileSwitch, getOutputFileSwitch, getStartupObject, link, prepareArguments, prepareFilename, prepareResponseFile, quoteFilename, runCommand, setCommand

Methods inherited from class net.sf.antcontrib.cpptasks.compiler.AbstractLinker

addVersionFiles, bid, changeEnvironment, createConfiguration, createConfiguration, getLibraryKey, getOutputFileNames

Methods inherited from class net.sf.antcontrib.cpptasks.compiler.AbstractProcessor

bid, changeEnvironment, clone, getHeaderExtensions, getIdentifier, getIdentifier, getOSArch, getOSName, getSourceExtensions, isDarwin, toString

Method Details

addBase

protected void addBase(long base,
                       Vector args)
Overrides:
addBase in interface CommandLineLinker

addEntry

protected void addEntry(String entry,
                        Vector args)
Overrides:
addEntry in interface CommandLineLinker

addFixed

protected void addFixed(Boolean fixed,
                        Vector args)
Overrides:
addFixed in interface CommandLineLinker

addImpliedArgs

protected void addImpliedArgs(boolean debug,
                              LinkType linkType,
                              Vector args)
Overrides:
addImpliedArgs in interface CommandLineLinker

addIncremental

protected void addIncremental(boolean incremental,
                              Vector args)
Overrides:
addIncremental in interface CommandLineLinker

addMap

protected void addMap(boolean map,
                      Vector args)
Overrides:
addMap in interface CommandLineLinker

addStack

protected void addStack(int stack,
                        Vector args)
Overrides:
addStack in interface CommandLineLinker

getCommandFileSwitch

protected String getCommandFileSwitch(String cmdFile)
Overrides:
getCommandFileSwitch in interface CommandLineLinker

getIdentifier

public String getIdentifier()
Gets identifier for the linker. TLIB will lockup when attempting to get version information. Since the Librarian version isn't critical just return a stock response.
Specified by:
getIdentifier in interface Processor
Overrides:
getIdentifier in interface CommandLineLinker

getInstance

public static BorlandLibrarian getInstance()

getLibraryPath

public File[] getLibraryPath()
returns the library path for the linker
Specified by:
getLibraryPath in interface Linker

getLibraryPatterns

public String[] getLibraryPatterns(String[] libnames,
                                   LibraryTypeEnum libType)
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.
Specified by:
getLibraryPatterns in interface Linker
Parameters:
libnames - array of library names

getLinker

public Linker getLinker(LinkType type)
Gets the linker for the specified link type.
Specified by:
getLinker in interface Linker
getLinker in interface Processor
Returns:
appropriate linker or null, will return this if this linker can handle the specified link type

getMaximumCommandLength

public int getMaximumCommandLength()
Overrides:
getMaximumCommandLength in interface CommandLineLinker

getOutputFileSwitch

public String[] getOutputFileSwitch(String outFile)
Overrides:
getOutputFileSwitch in interface CommandLineLinker

isCaseSensitive

public boolean isCaseSensitive()
Returns true if the linker is case-sensitive
Specified by:
isCaseSensitive in interface Linker

link

public void link(CCTask task,
                 File outputFile,
                 String[] sourceFiles,
                 CommandLineLinkerConfiguration config)
            throws BuildException
Builds a library
Overrides:
link in interface CommandLineLinker

prepareArguments

protected String[] prepareArguments(CCTask task,
                                    String outputDir,
                                    String outputName,
                                    String[] sourceFiles,
                                    CommandLineLinkerConfiguration config)
Prepares argument list for exec command.
Overrides:
prepareArguments in interface CommandLineLinker
Parameters:
sourceFiles - linker input files (.obj, .o, .res)
Returns:
arguments for runTask

prepareResponseFile

protected String[] prepareResponseFile(File outputFile,
                                       String[] args)
            throws IOException
Prepares argument list to execute the linker using a response file.
Overrides:
prepareResponseFile in interface CommandLineLinker
Parameters:
outputFile - linker output file
args - output of prepareArguments
Returns:
arguments for runTask

quoteFilename

protected String quoteFilename(StringBuffer buf,
                               String filename)
Encloses problematic file names within quotes.
Overrides:
quoteFilename in interface CommandLineLinker
Parameters:
buf - string buffer
filename - source file name

Copyright B) 2001-2006 Ant-Contrib project. All Rights Reserved.