Class AbstractCompiler

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

public abstract class AbstractCompiler extends AbstractProcessor implements Compiler
An abstract compiler implementation.
Author:
Adam Murdoch, Curt Arnold
  • Constructor Details

    • AbstractCompiler

      protected AbstractCompiler(String[] sourceExtensions, String[] headerExtensions, String outputSuffix)
  • Method Details

    • canParse

      protected boolean canParse(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(File sourceFile)
    • getBaseOutputName

      protected String getBaseOutputName(String inputFile)
    • getOutputFileNames

      public String[] getOutputFileNames(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, File source, File[] includePath, File[] sysIncludePath, File[] envIncludePath, File baseDir, 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(String includeName, File[] includePath, Vector onThisPath)