net.sf.antcontrib.cpptasks.compiler
Class AbstractCompiler

java.lang.Object
  extended by net.sf.antcontrib.cpptasks.compiler.AbstractProcessor
      extended by net.sf.antcontrib.cpptasks.compiler.AbstractCompiler
All Implemented Interfaces:
java.lang.Cloneable, Compiler, Processor
Direct Known Subclasses:
CommandLineCompiler

public abstract class AbstractCompiler
extends AbstractProcessor
implements Compiler

An abstract compiler implementation.

Author:
Adam Murdoch, Curt Arnold

Field Summary
 
Fields inherited from class net.sf.antcontrib.cpptasks.compiler.AbstractProcessor
DEFAULT_DISCARD_BID, DEFAULT_PROCESS_BID
 
Constructor Summary
protected AbstractCompiler(java.lang.String[] sourceExtensions, java.lang.String[] headerExtensions, java.lang.String outputSuffix)
           
 
Method Summary
protected  boolean canParse(java.io.File sourceFile)
          Checks file name to see if parse should be attempted Default implementation returns false for files with extensions '.dll', 'tlb', '.res'
protected abstract  CompilerConfiguration createConfiguration(CCTask task, LinkType linkType, ProcessorDef[] baseConfigs, CompilerDef specificConfig, TargetDef targetPlatform, VersionInfo versionInfo)
           
 ProcessorConfiguration createConfiguration(CCTask task, LinkType linkType, ProcessorDef[] baseConfigs, ProcessorDef specificConfig, TargetDef targetPlatform, VersionInfo versionInfo)
          Returns the compiler configuration for or element.
protected abstract  Parser createParser(java.io.File sourceFile)
           
protected  java.lang.String getBaseOutputName(java.lang.String inputFile)
           
 java.lang.String[] getOutputFileNames(java.lang.String inputFile, VersionInfo versionInfo)
          Output file name (no path components) corresponding to source file
 DependencyInfo parseIncludes(CCTask task, java.io.File source, java.io.File[] includePath, java.io.File[] sysIncludePath, java.io.File[] envIncludePath, java.io.File baseDir, java.lang.String includePathIdentifier)
          Returns dependency info for the specified source file
protected  boolean resolveInclude(java.lang.String includeName, java.io.File[] includePath, java.util.Vector onThisPath)
           
 
Methods inherited from class net.sf.antcontrib.cpptasks.compiler.AbstractProcessor
bid, changeEnvironment, clone, getHeaderExtensions, getIdentifier, 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.Processor
bid, changeEnvironment, getIdentifier, getLinker
 

Constructor Detail

AbstractCompiler

protected AbstractCompiler(java.lang.String[] sourceExtensions,
                           java.lang.String[] headerExtensions,
                           java.lang.String outputSuffix)
Method Detail

canParse

protected boolean canParse(java.io.File sourceFile)
Checks file name to see if parse should be attempted Default implementation returns false for files with extensions '.dll', 'tlb', '.res'


createConfiguration

protected abstract CompilerConfiguration createConfiguration(CCTask task,
                                                             LinkType linkType,
                                                             ProcessorDef[] baseConfigs,
                                                             CompilerDef 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

createParser

protected abstract Parser createParser(java.io.File sourceFile)

getBaseOutputName

protected java.lang.String getBaseOutputName(java.lang.String inputFile)

getOutputFileNames

public java.lang.String[] getOutputFileNames(java.lang.String inputFile,
                                             VersionInfo versionInfo)
Description copied from interface: Processor
Output file name (no path components) corresponding to source file

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

parseIncludes

public final DependencyInfo parseIncludes(CCTask task,
                                          java.io.File source,
                                          java.io.File[] includePath,
                                          java.io.File[] sysIncludePath,
                                          java.io.File[] envIncludePath,
                                          java.io.File baseDir,
                                          java.lang.String includePathIdentifier)
Returns dependency info for the specified source file

Parameters:
task - task for any diagnostic output
source - file to be parsed
includePath - include path to be used to resolve included files
sysIncludePath - sysinclude path from build file, files resolved using sysInclude path will not participate in dependency analysis
envIncludePath - include path from environment variable, files resolved with envIncludePath will not participate in dependency analysis
baseDir - used to produce relative paths in DependencyInfo
includePathIdentifier - used to distinguish DependencyInfo's from different include path settings

resolveInclude

protected boolean resolveInclude(java.lang.String includeName,
                                 java.io.File[] includePath,
                                 java.util.Vector onThisPath)


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