net.sf.antcontrib.cpptasks.compiler

Class PrecompilingCommandLineCompiler

Implemented Interfaces:
Cloneable, Compiler, PrecompilingCompiler, Processor
Known Direct 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

PrecompilingCommandLineCompiler(String command, String identifierArg, String[] sourceExtensions, String[] headerExtensions, String outputSuffix, boolean libtool, PrecompilingCommandLineCompiler libtoolCompiler, boolean newEnvironment, Environment env)

Method Summary

CompilerConfiguration[]
createPrecompileConfigurations(CompilerConfiguration config, File prototype, 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, File prototype, String lastInclude)
protected abstract CompilerConfiguration
createPrecompileUsingConfig(CommandLineCompilerConfiguration baseConfig, File prototype, String lastInclude, 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, createConfiguration, createParser, getBaseOutputName, getOutputFileNames, parseIncludes, resolveInclude

Methods inherited from class net.sf.antcontrib.cpptasks.compiler.AbstractProcessor

bid, changeEnvironment, clone, getHeaderExtensions, getIdentifier, getIdentifier, getOSArch, getOSName, getSourceExtensions, isDarwin, toString

Constructor Details

PrecompilingCommandLineCompiler

protected PrecompilingCommandLineCompiler(String command,
                                          String identifierArg,
                                          String[] sourceExtensions,
                                          String[] headerExtensions,
                                          String outputSuffix,
                                          boolean libtool,
                                          PrecompilingCommandLineCompiler libtoolCompiler,
                                          boolean newEnvironment,
                                          Environment env)

Method Details

createPrecompileConfigurations

public CompilerConfiguration[] createPrecompileConfigurations(CompilerConfiguration config,
                                                              File prototype,
                                                              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,
                                                                          File prototype,
                                                                          String lastInclude)

createPrecompileUsingConfig

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

Copyright B) 2001-2006 Ant-Contrib project. All Rights Reserved.