Package net.sf.antcontrib.cpptasks
Class ProcessorDef
- java.lang.Object
-
- org.apache.tools.ant.ProjectComponent
-
- org.apache.tools.ant.types.DataType
-
- net.sf.antcontrib.cpptasks.ProcessorDef
-
- All Implemented Interfaces:
java.lang.Cloneable
- Direct Known Subclasses:
CompilerDef
,LinkerDef
public abstract class ProcessorDef extends org.apache.tools.ant.types.DataType
An abstract compiler/linker definition.
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.Boolean
debug
if true, targets will be built for debuggingprivate org.apache.tools.ant.types.Environment
env
private org.apache.tools.ant.types.Reference
extendsRef
Reference for "extends" processor definitionprivate java.lang.String
ifProp
Name of property that must be present or definition will be ignored.private boolean
inherit
if true, processor definition inherits values from containing cc elementprivate java.lang.Boolean
libtool
protected boolean
newEnvironment
private Processor
processor
Processor.private java.util.Vector
processorArgs
Collection ofor contained by definition private java.util.Vector
processorParams
Collection ofor contained by definition private java.lang.Boolean
rebuild
if true, all targets will be unconditionally rebuiltprivate java.util.Vector
srcSets
Collection ofcontained by definition private java.lang.String
unlessProp
Name of property that if present will cause definition to be ignored.
-
Constructor Summary
Constructors Modifier Constructor Description protected
ProcessorDef()
Constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addConfiguredProcessorArg(CommandLineArgument arg)
Adds aor protected void
addConfiguredProcessorParam(ProcessorParam param)
Adds aor void
addEnv(org.apache.tools.ant.types.Environment.Variable var)
Add an environment variable to the launched process.void
addFileset(ConditionalFileSet srcSet)
Adds a source file set.protected static java.lang.Boolean
booleanValueOf(boolean val)
Returns the equivalent Boolean object for the specified value Equivalent to Boolean.valueOf in JDK 1.4ProcessorConfiguration
createConfiguration(CCTask task, LinkType linkType, ProcessorDef baseDef, TargetDef targetPlatform, VersionInfo versionInfo)
Creates a configurationCommandLineArgument[]
getActiveProcessorArgs()
Prepares list of processor arguments ( compilerarg, linkerarg ) that are active for the current project settings.ProcessorParam[]
getActiveProcessorParams()
Prepares list of processor arguments ( compilerarg, linkerarg) that are active for the current project settings.boolean
getDebug(ProcessorDef[] defaultProviders, int index)
Gets boolean indicating debug buildprotected ProcessorDef[]
getDefaultProviders(ProcessorDef baseDef)
Creates an chain of objects which provide default values in descending order of significance.ProcessorDef
getExtends()
Gets the ProcessorDef specified by the extends attributeboolean
getInherit()
Gets the inherit attribute.boolean
getLibtool()
protected Processor
getProcessor()
Obtains the appropriate processor (compiler, linker)protected Processor
getProcessor(LinkType linkType)
Obtains the appropriate processor (compiler, linker) based on the LinkType.boolean
getRebuild(ProcessorDef[] defaultProviders, int index)
Gets a boolean value indicating whether all targets must be rebuilt regardless of dependency analysis.boolean
hasFileSets()
Returns true if the processor definition contains embedded file set definitionsboolean
isActive()
Determine if this def should be used.void
setClassname(java.lang.String className)
Sets the class name for the adapter.void
setDebug(boolean debug)
If set true, all targets will be built for debugging.void
setDescription(java.lang.String desc)
Sets a description of the current data type.void
setExtends(org.apache.tools.ant.types.Reference extendsRef)
Specifies that this element extends the element with id attribute with a matching value.void
setId(java.lang.String id)
Sets an id that can be used to reference this element.void
setIf(java.lang.String propName)
Sets the property name for the 'if' condition.void
setInherit(boolean inherit)
If inherit has the default value of true, defines, includes and other settings from the containing cc element will be inherited.void
setLibtool(boolean libtool)
Set use of libtool.void
setNewenvironment(boolean newenv)
Do not propagate old environment when new environment variables are specified.protected void
setProcessor(Processor processor)
Sets the processorvoid
setRebuild(boolean rebuild)
If set true, all targets will be unconditionally rebuilt.void
setRefid(org.apache.tools.ant.types.Reference ref)
Specifies that this element should behave as if the content of the element with the matching id attribute was inserted at this location.void
setUnless(java.lang.String propName)
Set the property name for the 'unless' condition.void
visitFiles(FileVisitor visitor)
This method calls the FileVistor's visit function for every file in the processors definition-
Methods inherited from class org.apache.tools.ant.types.DataType
checkAttributesAllowed, checkChildrenAllowed, circularReference, clone, dieOnCircularReference, dieOnCircularReference, dieOnCircularReference, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getDataTypeName, getRefid, invokeCircularReferenceCheck, isChecked, isReference, noChildrenAllowed, pushAndInvokeCircularReferenceCheck, setChecked, tooManyAttributes, toString
-
-
-
-
Field Detail
-
debug
private java.lang.Boolean debug
if true, targets will be built for debugging
-
env
private org.apache.tools.ant.types.Environment env
-
extendsRef
private org.apache.tools.ant.types.Reference extendsRef
Reference for "extends" processor definition
-
ifProp
private java.lang.String ifProp
Name of property that must be present or definition will be ignored. May be null.
-
inherit
private boolean inherit
if true, processor definition inherits values from containing cc element
-
libtool
private java.lang.Boolean libtool
-
newEnvironment
protected boolean newEnvironment
-
processor
private Processor processor
Processor.
-
processorArgs
private final java.util.Vector processorArgs
Collection ofor contained by definition
-
processorParams
private final java.util.Vector processorParams
Collection ofor contained by definition
-
rebuild
private java.lang.Boolean rebuild
if true, all targets will be unconditionally rebuilt
-
srcSets
private final java.util.Vector srcSets
Collection ofcontained by definition
-
unlessProp
private java.lang.String unlessProp
Name of property that if present will cause definition to be ignored. May be null.
-
-
Method Detail
-
booleanValueOf
protected static java.lang.Boolean booleanValueOf(boolean val)
Returns the equivalent Boolean object for the specified value Equivalent to Boolean.valueOf in JDK 1.4- Parameters:
val
- boolean value- Returns:
- Boolean.TRUE or Boolean.FALSE
-
addConfiguredProcessorArg
protected void addConfiguredProcessorArg(CommandLineArgument arg) throws java.lang.NullPointerException, org.apache.tools.ant.BuildException
Adds aor - Parameters:
arg
- command line argument, must not be null- Throws:
java.lang.NullPointerException
- if arg is nullorg.apache.tools.ant.BuildException
- if this definition is a reference
-
addConfiguredProcessorParam
protected void addConfiguredProcessorParam(ProcessorParam param) throws java.lang.NullPointerException, org.apache.tools.ant.BuildException
Adds aor - Parameters:
param
- command line argument, must not be null- Throws:
java.lang.NullPointerException
- if arg is nullorg.apache.tools.ant.BuildException
- if this definition is a reference
-
addEnv
public void addEnv(org.apache.tools.ant.types.Environment.Variable var)
Add an environment variable to the launched process.
-
addFileset
public void addFileset(ConditionalFileSet srcSet) throws org.apache.tools.ant.BuildException
Adds a source file set. Files in these set will be processed by this configuration and will not participate in the auction.- Parameters:
srcSet
- Fileset identifying files that should be processed by this processor- Throws:
org.apache.tools.ant.BuildException
- if processor definition is a reference
-
createConfiguration
public ProcessorConfiguration createConfiguration(CCTask task, LinkType linkType, ProcessorDef baseDef, TargetDef targetPlatform, VersionInfo versionInfo)
Creates a configuration- Parameters:
baseDef
- reference to def from containing cc element, may be null- Returns:
- configuration
-
getActiveProcessorArgs
public CommandLineArgument[] getActiveProcessorArgs()
Prepares list of processor arguments ( compilerarg, linkerarg ) that are active for the current project settings.- Returns:
- active compiler arguments
-
getActiveProcessorParams
public ProcessorParam[] getActiveProcessorParams()
Prepares list of processor arguments ( compilerarg, linkerarg) that are active for the current project settings.- Returns:
- active compiler arguments
-
getDebug
public boolean getDebug(ProcessorDef[] defaultProviders, int index)
Gets boolean indicating debug build- Parameters:
defaultProviders
- array of ProcessorDef's in descending priorityindex
- index to first element in array that should be considered- Returns:
- if true, built targets for debugging
-
getDefaultProviders
protected final ProcessorDef[] getDefaultProviders(ProcessorDef baseDef)
Creates an chain of objects which provide default values in descending order of significance.- Parameters:
baseDef
- corresponding ProcessorDef from CCTask, will be last element in array unless inherit = false- Returns:
- default provider array
-
getExtends
public ProcessorDef getExtends() throws org.apache.tools.ant.BuildException
Gets the ProcessorDef specified by the extends attribute- Returns:
- Base ProcessorDef, null if extends is not specified
- Throws:
org.apache.tools.ant.BuildException
- if reference is not same type object
-
getInherit
public final boolean getInherit()
Gets the inherit attribute. If the inherit value is true, this processor definition will inherit default values from the containing cc element.- Returns:
- if true then properties from the containing
element are used.
-
getLibtool
public boolean getLibtool()
-
getProcessor
protected Processor getProcessor()
Obtains the appropriate processor (compiler, linker)- Returns:
- processor
-
getProcessor
protected Processor getProcessor(LinkType linkType)
Obtains the appropriate processor (compiler, linker) based on the LinkType.- Returns:
- processor
-
getRebuild
public boolean getRebuild(ProcessorDef[] defaultProviders, int index)
Gets a boolean value indicating whether all targets must be rebuilt regardless of dependency analysis.- Parameters:
defaultProviders
- array of ProcessorDef's in descending priorityindex
- index to first element in array that should be considered- Returns:
- true if all targets should be rebuilt.
-
hasFileSets
public boolean hasFileSets()
Returns true if the processor definition contains embedded file set definitions- Returns:
- true if processor definition contains embedded filesets
-
isActive
public boolean isActive() throws org.apache.tools.ant.BuildException, java.lang.IllegalStateException
Determine if this def should be used. Definition will be active if the "if" variable (if specified) is set and the "unless" variable (if specified) is not set and that all reference or extended definitions are active- Returns:
- true if processor is active
- Throws:
java.lang.IllegalStateException
- if not properly initializedorg.apache.tools.ant.BuildException
- if "if" or "unless" variable contains suspicious values "false" or "no" which indicates possible confusion
-
setClassname
public void setClassname(java.lang.String className) throws org.apache.tools.ant.BuildException
Sets the class name for the adapter. Use the "name" attribute when the tool is supported.- Parameters:
className
- full class name- Throws:
org.apache.tools.ant.BuildException
-
setDebug
public void setDebug(boolean debug) throws org.apache.tools.ant.BuildException
If set true, all targets will be built for debugging.- Parameters:
debug
- true if targets should be built for debugging- Throws:
org.apache.tools.ant.BuildException
- if processor definition is a reference
-
setDescription
public void setDescription(java.lang.String desc)
Sets a description of the current data type.- Overrides:
setDescription
in classorg.apache.tools.ant.ProjectComponent
-
setExtends
public void setExtends(org.apache.tools.ant.types.Reference extendsRef) throws org.apache.tools.ant.BuildException
Specifies that this element extends the element with id attribute with a matching value. The configuration will be constructed from the settings of this element, element referenced by extends, and the containing cc element.- Parameters:
extendsRef
- Reference to the extended processor definition.- Throws:
org.apache.tools.ant.BuildException
- if this processor definition is a reference
-
setId
public void setId(java.lang.String id)
Sets an id that can be used to reference this element.- Parameters:
id
- id
-
setIf
public void setIf(java.lang.String propName)
Sets the property name for the 'if' condition. The configuration will be ignored unless the property is defined. The value of the property is insignificant, but values that would imply misinterpretation ("false", "no") will throw an exception when evaluated.- Parameters:
propName
- name of property
-
setInherit
public void setInherit(boolean inherit) throws org.apache.tools.ant.BuildException
If inherit has the default value of true, defines, includes and other settings from the containing cc element will be inherited.- Parameters:
inherit
- new value- Throws:
org.apache.tools.ant.BuildException
- if processor definition is a reference
-
setLibtool
public void setLibtool(boolean libtool)
Set use of libtool. If set to true, the "libtool " will be prepended to the command line- Parameters:
libtool
- If true, use libtool.
-
setNewenvironment
public void setNewenvironment(boolean newenv)
Do not propagate old environment when new environment variables are specified.
-
setProcessor
protected void setProcessor(Processor processor) throws org.apache.tools.ant.BuildException, java.lang.NullPointerException
Sets the processor- Parameters:
processor
- processor, may not be null.- Throws:
org.apache.tools.ant.BuildException
- if ProcessorDef is a referencejava.lang.NullPointerException
- if processor is null
-
setRebuild
public void setRebuild(boolean rebuild) throws org.apache.tools.ant.BuildException
If set true, all targets will be unconditionally rebuilt.- Parameters:
rebuild
- if true, rebuild all targets.- Throws:
org.apache.tools.ant.BuildException
- if processor definition is a reference
-
setRefid
public void setRefid(org.apache.tools.ant.types.Reference ref)
Specifies that this element should behave as if the content of the element with the matching id attribute was inserted at this location. If specified, no other attributes or child content should be specified, other than "if", "unless" and "description".- Overrides:
setRefid
in classorg.apache.tools.ant.types.DataType
- Parameters:
ref
- Reference to other element
-
setUnless
public void setUnless(java.lang.String propName)
Set the property name for the 'unless' condition. If named property is set, the configuration will be ignored. The value of the property is insignificant, but values that would imply misinterpretation ("false", "no") of the behavior will throw an exception when evaluated.- Parameters:
propName
- name of property
-
visitFiles
public void visitFiles(FileVisitor visitor)
This method calls the FileVistor's visit function for every file in the processors definition- Parameters:
visitor
- object whose visit method is called for every file
-
-