Class AbstractCompiler
- java.lang.Object
-
- net.sf.antcontrib.cpptasks.compiler.AbstractProcessor
-
- net.sf.antcontrib.cpptasks.compiler.AbstractCompiler
-
- 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
Constructors Modifier Constructor Description protected
AbstractCompiler(java.lang.String[] sourceExtensions, java.lang.String[] headerExtensions, java.lang.String outputSuffix)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description 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 foror 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 fileDependencyInfo
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 fileprotected 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
-
-
-
-
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 foror element. - Specified by:
createConfiguration
in interfaceProcessor
baseConfigs
- When specificConfig corresponds to aor 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
- Aor 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 interfaceProcessor
- 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 outputsource
- file to be parsedincludePath
- include path to be used to resolve included filessysIncludePath
- sysinclude path from build file, files resolved using sysInclude path will not participate in dependency analysisenvIncludePath
- include path from environment variable, files resolved with envIncludePath will not participate in dependency analysisbaseDir
- used to produce relative paths in DependencyInfoincludePathIdentifier
- 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)
-
-