net.sf.antcontrib.cpptasks.compiler
Interface Linker

All Superinterfaces:
Processor
All Known Implementing Classes:
AbstractArLibrarian, AbstractLdLinker, AbstractLinker, aCCLinker, ADSLibrarian, ADSLinker, BorlandLibrarian, BorlandLinker, C89Linker, ClxxLibrarian, ClxxLinker, CommandLineLinker, CompaqVisualFortranLibrarian, CompaqVisualFortranLinker, DevStudioCompatibleLibrarian, DevStudioCompatibleLinker, DevStudioLibrarian, DevStudioLinker, ForteCCLinker, GccLibrarian, GccLibrarian, GccLibrarian, GccLinker, GccLinker, GccLinker, GppLinker, GppLinker, GppLinker, IccLinker, IntelLinux32Linker, IntelLinux64Linker, IntelWin32Librarian, IntelWin32Linker, LdLinker, LdLinker, LdLinker, OpenWatcomCLinker, OpenWatcomFortranLinker, OpenWatcomLibrarian, OpenWatcomLinker, OS390Linker, VisualAgeLinker

public interface Linker
extends Processor

A linker for executables, and static and dynamic libraries.

Author:
Adam Murdoch

Method Summary
 void addVersionFiles(VersionInfo versionInfo, LinkType linkType, java.io.File outputFile, boolean isDebug, java.io.File objDir, TargetMatcher matcher)
          Adds source or object files to the bidded fileset to support version information.
 java.lang.String getLibraryKey(java.io.File libname)
          Extracts the significant part of a library name to ensure there aren't collisions
 java.io.File[] getLibraryPath()
          returns the library path for the linker
 java.lang.String[] getLibraryPatterns(java.lang.String[] libnames, LibraryTypeEnum libraryType)
          Returns a set of filename patterns corresponding to library names.
 Linker getLinker(LinkType linkType)
          Gets the linker for the specified link type.
 boolean isCaseSensitive()
          Returns true if the linker is case-sensitive
 
Methods inherited from interface net.sf.antcontrib.cpptasks.compiler.Processor
bid, changeEnvironment, createConfiguration, getIdentifier, getOutputFileNames
 

Method Detail

getLibraryKey

java.lang.String getLibraryKey(java.io.File libname)
Extracts the significant part of a library name to ensure there aren't collisions


getLibraryPath

java.io.File[] getLibraryPath()
returns the library path for the linker


getLibraryPatterns

java.lang.String[] getLibraryPatterns(java.lang.String[] libnames,
                                      LibraryTypeEnum libraryType)
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

getLinker

Linker getLinker(LinkType linkType)
Gets the linker for the specified link type.

Specified by:
getLinker in interface Processor
Returns:
appropriate linker or null, will return this if this linker can handle the specified link type

isCaseSensitive

boolean isCaseSensitive()
Returns true if the linker is case-sensitive


addVersionFiles

void addVersionFiles(VersionInfo versionInfo,
                     LinkType linkType,
                     java.io.File outputFile,
                     boolean isDebug,
                     java.io.File objDir,
                     TargetMatcher matcher)
                     throws java.io.IOException
Adds source or object files to the bidded fileset to support version information.

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:
java.io.IOException


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