Class CommandLineCompilerConfiguration
- java.lang.Object
-
- net.sf.antcontrib.cpptasks.compiler.CommandLineCompilerConfiguration
-
- All Implemented Interfaces:
CompilerConfiguration
,ProcessorConfiguration
public final class CommandLineCompilerConfiguration extends java.lang.Object implements CompilerConfiguration
A configuration for a C++ compiler- Author:
- Curt Arnold
-
-
Constructor Summary
Constructors Constructor Description CommandLineCompilerConfiguration(CommandLineCompilerConfiguration base, java.lang.String[] additionalArgs, java.lang.String[] exceptFiles, boolean isPrecompileHeaderGeneration)
CommandLineCompilerConfiguration(CommandLineCompiler compiler, java.lang.String identifier, java.io.File[] includePath, java.io.File[] sysIncludePath, java.io.File[] envIncludePath, java.lang.String includePathIdentifier, java.lang.String[] args, ProcessorParam[] params, boolean rebuild, java.lang.String[] endArgs)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
bid(java.lang.String inputFile)
An indication of how much this compiler would like to process this filevoid
compile(CCTask task, java.io.File outputDir, java.lang.String[] sourceFiles, boolean relentless, ProgressMonitor monitor)
CompilerConfiguration[]
createPrecompileConfigurations(java.io.File prototype, java.lang.String[] nonPrecompiledFiles)
This method may be used to get two distinct compiler configurations, one for compiling the specified file and producing a precompiled header file, and a second for compiling other files using the precompiled header file.java.lang.String
getCommand()
Compiler
getCompiler()
java.lang.String[]
getEndArguments()
java.lang.String
getIdentifier()
Returns a string representation of this configuration.java.io.File[]
getIncludePath()
java.lang.String
getIncludePathIdentifier()
Returns an digest for the include path for the configuration.java.lang.String[]
getOutputFileNames(java.lang.String inputFile, VersionInfo versionInfo)
Output file name (no path components) corresponding to source fileCompilerParam
getParam(java.lang.String name)
ProcessorParam[]
getParams()
java.lang.String[]
getPreArguments()
boolean
getRebuild()
If true, all files using this configuration should be rebuilt and any existing output files should be ignoredboolean
isPrecompileGeneration()
DependencyInfo
parseIncludes(CCTask task, java.io.File baseDir, java.io.File source)
java.lang.String
toString()
-
-
-
Constructor Detail
-
CommandLineCompilerConfiguration
public CommandLineCompilerConfiguration(CommandLineCompiler compiler, java.lang.String identifier, java.io.File[] includePath, java.io.File[] sysIncludePath, java.io.File[] envIncludePath, java.lang.String includePathIdentifier, java.lang.String[] args, ProcessorParam[] params, boolean rebuild, java.lang.String[] endArgs)
-
CommandLineCompilerConfiguration
public CommandLineCompilerConfiguration(CommandLineCompilerConfiguration base, java.lang.String[] additionalArgs, java.lang.String[] exceptFiles, boolean isPrecompileHeaderGeneration)
-
-
Method Detail
-
bid
public int bid(java.lang.String inputFile)
Description copied from interface:ProcessorConfiguration
An indication of how much this compiler would like to process this file- Specified by:
bid
in interfaceProcessorConfiguration
- Returns:
- 0 is no interest to process, 100 is strong interest to process
-
compile
public void compile(CCTask task, java.io.File outputDir, java.lang.String[] sourceFiles, boolean relentless, ProgressMonitor monitor) throws org.apache.tools.ant.BuildException
- Specified by:
compile
in interfaceCompilerConfiguration
- Throws:
org.apache.tools.ant.BuildException
-
createPrecompileConfigurations
public CompilerConfiguration[] createPrecompileConfigurations(java.io.File prototype, java.lang.String[] nonPrecompiledFiles)
This method may be used to get two distinct compiler configurations, one for compiling the specified file and producing a precompiled header file, and a second for compiling other files using the precompiled header file. The last (preferrably only) include directive in the prototype file will be used to mark the boundary between pre-compiled and normally compiled headers.- Specified by:
createPrecompileConfigurations
in interfaceCompilerConfiguration
- Parameters:
prototype
- A source file (for example, stdafx.cpp) that is used to build the precompiled header file. @returns null if precompiled headers are not supported or a two element array containing the precompiled header generation configuration and the consuming configuration
-
getIdentifier
public java.lang.String getIdentifier()
Returns a string representation of this configuration. Should be canonical so that equivalent configurations will have equivalent string representations- Specified by:
getIdentifier
in interfaceProcessorConfiguration
-
getIncludePathIdentifier
public java.lang.String getIncludePathIdentifier()
Description copied from interface:CompilerConfiguration
Returns an digest for the include path for the configuration. This is used to determine if cached dependency information is invalid because the include paths have changed- Specified by:
getIncludePathIdentifier
in interfaceCompilerConfiguration
-
getOutputFileNames
public java.lang.String[] getOutputFileNames(java.lang.String inputFile, VersionInfo versionInfo)
Description copied from interface:ProcessorConfiguration
Output file name (no path components) corresponding to source file- Specified by:
getOutputFileNames
in interfaceProcessorConfiguration
- Parameters:
inputFile
- input file- Returns:
- output file names or zero-length array if no output file or name not determined by input file
-
getParam
public CompilerParam getParam(java.lang.String name)
- Specified by:
getParam
in interfaceCompilerConfiguration
-
getParams
public ProcessorParam[] getParams()
- Specified by:
getParams
in interfaceProcessorConfiguration
-
getRebuild
public boolean getRebuild()
Description copied from interface:ProcessorConfiguration
If true, all files using this configuration should be rebuilt and any existing output files should be ignored- Specified by:
getRebuild
in interfaceProcessorConfiguration
-
isPrecompileGeneration
public boolean isPrecompileGeneration()
- Specified by:
isPrecompileGeneration
in interfaceCompilerConfiguration
-
parseIncludes
public DependencyInfo parseIncludes(CCTask task, java.io.File baseDir, java.io.File source)
- Specified by:
parseIncludes
in interfaceCompilerConfiguration
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
getPreArguments
public java.lang.String[] getPreArguments()
-
getEndArguments
public java.lang.String[] getEndArguments()
-
getIncludePath
public java.io.File[] getIncludePath()
-
getCompiler
public Compiler getCompiler()
-
getCommand
public java.lang.String getCommand()
-
-