net.sf.antcontrib.cpptasks.compiler

Class CommandLineCompilerConfiguration

public final class CommandLineCompilerConfiguration extends Object implements CompilerConfiguration

A configuration for a C++ compiler

Author: Curt Arnold

Constructor Summary
CommandLineCompilerConfiguration(CommandLineCompiler compiler, String identifier, File[] includePath, File[] sysIncludePath, File[] envIncludePath, String includePathIdentifier, String[] args, ProcessorParam[] params, boolean rebuild, String[] endArgs)
CommandLineCompilerConfiguration(CommandLineCompilerConfiguration base, String[] additionalArgs, String[] exceptFiles, boolean isPrecompileHeaderGeneration)
Method Summary
intbid(String inputFile)
voidcompile(CCTask task, File outputDir, String[] sourceFiles, boolean relentless, ProgressMonitor monitor)
CompilerConfiguration[]createPrecompileConfigurations(File prototype, 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.
StringgetCommand()
CompilergetCompiler()
String[]getEndArguments()
StringgetIdentifier()
Returns a string representation of this configuration.
File[]getIncludePath()
StringgetIncludePathIdentifier()
String[]getOutputFileNames(String inputFile, VersionInfo versionInfo)
CompilerParamgetParam(String name)
ProcessorParam[]getParams()
String[]getPreArguments()
booleangetRebuild()
booleanisPrecompileGeneration()
DependencyInfoparseIncludes(CCTask task, File baseDir, File source)
StringtoString()

Constructor Detail

CommandLineCompilerConfiguration

public CommandLineCompilerConfiguration(CommandLineCompiler compiler, String identifier, File[] includePath, File[] sysIncludePath, File[] envIncludePath, String includePathIdentifier, String[] args, ProcessorParam[] params, boolean rebuild, String[] endArgs)

CommandLineCompilerConfiguration

public CommandLineCompilerConfiguration(CommandLineCompilerConfiguration base, String[] additionalArgs, String[] exceptFiles, boolean isPrecompileHeaderGeneration)

Method Detail

bid

public int bid(String inputFile)

compile

public void compile(CCTask task, File outputDir, String[] sourceFiles, boolean relentless, ProgressMonitor monitor)

createPrecompileConfigurations

public CompilerConfiguration[] createPrecompileConfigurations(File prototype, 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.

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

getCommand

public String getCommand()

getCompiler

public Compiler getCompiler()

getEndArguments

public String[] getEndArguments()

getIdentifier

public String getIdentifier()
Returns a string representation of this configuration. Should be canonical so that equivalent configurations will have equivalent string representations

getIncludePath

public File[] getIncludePath()

getIncludePathIdentifier

public String getIncludePathIdentifier()

getOutputFileNames

public String[] getOutputFileNames(String inputFile, VersionInfo versionInfo)

getParam

public CompilerParam getParam(String name)

getParams

public ProcessorParam[] getParams()

getPreArguments

public String[] getPreArguments()

getRebuild

public boolean getRebuild()

isPrecompileGeneration

public boolean isPrecompileGeneration()

parseIncludes

public DependencyInfo parseIncludes(CCTask task, File baseDir, File source)

toString

public String toString()
Copyright ? 2001-2011 Ant-Contrib project. All Rights Reserved.