net.sf.antcontrib.cpptasks.compiler
Class CommandLineCompilerConfiguration

java.lang.Object
  extended by 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
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
 int bid(java.lang.String inputFile)
          An indication of how much this compiler would like to process this file
 void 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 file
 CompilerParam 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 ignored
 boolean isPrecompileGeneration()
           
 DependencyInfo parseIncludes(CCTask task, java.io.File baseDir, java.io.File source)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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 interface ProcessorConfiguration
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 interface CompilerConfiguration
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 interface CompilerConfiguration
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 interface ProcessorConfiguration

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 interface CompilerConfiguration

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 interface ProcessorConfiguration
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 interface CompilerConfiguration

getParams

public ProcessorParam[] getParams()
Specified by:
getParams in interface ProcessorConfiguration

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 interface ProcessorConfiguration

isPrecompileGeneration

public boolean isPrecompileGeneration()
Specified by:
isPrecompileGeneration in interface CompilerConfiguration

parseIncludes

public DependencyInfo parseIncludes(CCTask task,
                                    java.io.File baseDir,
                                    java.io.File source)
Specified by:
parseIncludes in interface CompilerConfiguration

toString

public java.lang.String toString()
Overrides:
toString in class java.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()


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