terp - the ANT Tasks
v1.3.337

com.codemesh.terp.ant.compiler.cpp
Class GenericOption

java.lang.Object
  extended by com.codemesh.terp.ant.compiler.AbstractCompilerOption<CppCompiler>
      extended by com.codemesh.terp.ant.compiler.cpp.GenericOption
All Implemented Interfaces:
CompilerOption<CppCompiler>

public class GenericOption
extends AbstractCompilerOption<CppCompiler>

A generic option has its value directly included. You should only use generic options if you know what you're doing and if the compiler task does not provide an abstract interface for specifying the switch that you need to pass to the compiler.

The GenericOption is the ultimate escape hatch as far as compiler switches are concerned.


Field Summary
protected  java.util.List<CompilerPhase> phases
           
protected  java.util.List<java.lang.String> values
           
 
Constructor Summary
GenericOption()
           
GenericOption(CompilerPhase phase, java.lang.String... values)
           
 
Method Summary
 void addCommands(java.util.List<java.lang.String> commandList, CppCompiler compiler, CompilerPhase phase)
          Adds the compiler switches repreesnted by this option to the list of switches.
 void addValue(java.lang.String value)
          Adds a value to the list of switches represented by this option.
 boolean appliesTo(CppCompiler compiler, CompilerPhase phase)
          Returns true if this compiler option applies to the given compiler and compiler phase.
 void setPhase(java.lang.String phase)
          Sets the phase to which this option applies to.
 void setValues(java.util.List<java.lang.String> values)
          Sets the option(s) that are added to the compiler commandline if this instance is enabled.
 void setValues(java.lang.String values)
          Sets the option(s) that are added to the compiler commandline if this instance is enabled.
 
Methods inherited from class com.codemesh.terp.ant.compiler.AbstractCompilerOption
expand, expand, getIf, getProject, getUnless, quoteIfNecessary, satisfies, setIf, setProject, setUnless
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

values

protected java.util.List<java.lang.String> values

phases

protected java.util.List<CompilerPhase> phases
Constructor Detail

GenericOption

public GenericOption()

GenericOption

public GenericOption(CompilerPhase phase,
                     java.lang.String... values)
Method Detail

setPhase

public void setPhase(java.lang.String phase)
Sets the phase to which this option applies to. The phase is a comma- or semicolon-separated list of "compile", "compileandlink", and "link".

Parameters:
phase - the compilation phases to which the option applies.

setValues

public void setValues(java.lang.String values)
Sets the option(s) that are added to the compiler commandline if this instance is enabled. You can specify more than one compiler switch by space-separating them in the String parameter.

Parameters:
values - the space-separated compiler switches represented by this option.
See Also:
setValues(List)

setValues

public void setValues(java.util.List<java.lang.String> values)
Sets the option(s) that are added to the compiler commandline if this instance is enabled.

Parameters:
values - the compiler switches represented by this option.
See Also:
setValues(String)

addValue

public void addValue(java.lang.String value)
Adds a value to the list of switches represented by this option.

Parameters:
value - a compiler switch.

addCommands

public void addCommands(java.util.List<java.lang.String> commandList,
                        CppCompiler compiler,
                        CompilerPhase phase)
Adds the compiler switches repreesnted by this option to the list of switches. Some compiler options may result in more than one switch being added to a compiler invocation. Other compiler options may result in different options being added in different phases (compilation vs. linking) of the build.

This method is called by the compiler repeatedly with different values for the compiler phase to account for these possibilities.

Parameters:
commandList - the list to which the compiler switches represented by this option (if any) are added.
compiler - the compiler for which we're doing this.
phase - the compiler phase in wihch we're doing this.

appliesTo

public boolean appliesTo(CppCompiler compiler,
                         CompilerPhase phase)
Returns true if this compiler option applies to the given compiler and compiler phase. Not every option has switches to contribute for every compiler and every compilation phase. This method allows a quick, inexpensive check to filter out potentially more expensive calls later on.

Parameters:
compiler - the compiler for which we're asking.
phase - the compiler phase we're executing.
Returns:

terp - the ANT Tasks
v1.3.337

Copyright © 2008-2016 by Codemesh, Inc. All Rights Reserved.