net.sf.antcontrib.cpptasks.compiler
Class PrecompilingCommandLineCompiler

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

public abstract class PrecompilingCommandLineCompiler
extends CommandLineCompiler
implements PrecompilingCompiler

A command line C compiler that can utilize precompilation of header files

Author:
Curt Arnold

Field Summary
 
Fields inherited from class net.sf.antcontrib.cpptasks.compiler.AbstractProcessor
DEFAULT_DISCARD_BID, DEFAULT_PROCESS_BID
 
Constructor Summary
protected PrecompilingCommandLineCompiler(java.lang.String command, java.lang.String identifierArg, java.lang.String[] sourceExtensions, java.lang.String[] headerExtensions, java.lang.String outputSuffix, boolean libtool, PrecompilingCommandLineCompiler libtoolCompiler, boolean newEnvironment, org.apache.tools.ant.types.Environment env)
           
 
Method Summary
 CompilerConfiguration[] createPrecompileConfigurations(CompilerConfiguration config, java.io.File prototype, java.lang.String[] exceptFiles)
          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.
protected abstract  CompilerConfiguration createPrecompileGeneratingConfig(CommandLineCompilerConfiguration baseConfig, java.io.File prototype, java.lang.String lastInclude)
           
protected abstract  CompilerConfiguration createPrecompileUsingConfig(CommandLineCompilerConfiguration baseConfig, java.io.File prototype, java.lang.String lastInclude, java.lang.String[] exceptFiles)
           
 
Methods inherited from class net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler
addImpliedArgs, addIncludes, addWarningSwitch, buildDefineArguments, compile, createConfiguration, getArgumentCountPerInputFile, getCommand, getDefineSwitch, getEnvironmentIncludePath, getIdentifier, getIncludeDirSwitch, getInputFileArgument, getLibtool, getLibtoolCompiler, getMaximumCommandLength, getMaximumInputFilesPerCommand, getTotalArgumentLengthForInputFile, getUndefineSwitch, runCommand, setCommand
 
Methods inherited from class net.sf.antcontrib.cpptasks.compiler.AbstractCompiler
canParse, createConfiguration, createParser, getBaseOutputName, getOutputFileNames, parseIncludes, resolveInclude
 
Methods inherited from class net.sf.antcontrib.cpptasks.compiler.AbstractProcessor
bid, changeEnvironment, clone, getHeaderExtensions, 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, getLinker
 

Constructor Detail

PrecompilingCommandLineCompiler

protected PrecompilingCommandLineCompiler(java.lang.String command,
                                          java.lang.String identifierArg,
                                          java.lang.String[] sourceExtensions,
                                          java.lang.String[] headerExtensions,
                                          java.lang.String outputSuffix,
                                          boolean libtool,
                                          PrecompilingCommandLineCompiler libtoolCompiler,
                                          boolean newEnvironment,
                                          org.apache.tools.ant.types.Environment env)
Method Detail

createPrecompileConfigurations

public CompilerConfiguration[] createPrecompileConfigurations(CompilerConfiguration config,
                                                              java.io.File prototype,
                                                              java.lang.String[] exceptFiles)
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 PrecompilingCompiler
Parameters:
config - base configuration
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

createPrecompileGeneratingConfig

protected abstract CompilerConfiguration createPrecompileGeneratingConfig(CommandLineCompilerConfiguration baseConfig,
                                                                          java.io.File prototype,
                                                                          java.lang.String lastInclude)

createPrecompileUsingConfig

protected abstract CompilerConfiguration createPrecompileUsingConfig(CommandLineCompilerConfiguration baseConfig,
                                                                     java.io.File prototype,
                                                                     java.lang.String lastInclude,
                                                                     java.lang.String[] exceptFiles)


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