wx.Build.Net.CSharpCodeProvider Class Reference

Inheritance diagram for wx.Build.Net.CSharpCodeProvider:

Inheritance graph

List of all members.

Public Member Functions

delegate void AdderSerializable (System.Xml.Serialization.IXmlSerializable arg)
void AppendBooCode (List< string > booCodeLines, string indention, BuildToolFamilyEnv env)
virtual void AppendBooCode (List< string > booCodeLines, string indention, BuildToolFamilyEnv env)
void AppendToBooPreamble (BuildToolFamilyEnv env, List< string > importModules, List< string > booDeclarations, List< string > booDefinitions)
virtual void AppendToBooPreamble (BuildToolFamilyEnv env, List< string > importModules, List< string > booDeclarations, List< string > booDefinitions)
bool AreAllMandatoryVarsDefined ()
void CollectChoicePoints (IDictionary< string, ICollection< string >> collectionOfChoicePoints)
void CollectChoicePoints (IDictionary< string, ICollection< string >> collectionOfChoicePoints)
override bool ContainsPrerequisite (IBuildProduct prereq)
IBuildAction Create (BuildToolFamilyEnv env, IBuildProduct assemblyTarget, ICollection< IBuildProduct > prerequisites)
 CSharpCodeProvider ()
bool Execute (BuildToolFamilyEnv env, bool usePortableOptionsOnly)
bool Execute (BuildToolFamilyEnv env, DateTime validityOfBuildSystem)
System.CodeDom.Compiler.CompilerParameters GetParameters (bool portable)
override ICollection
< IBuildProduct
GetPrerequisites ()
System.Diagnostics.ProcessStartInfo GetProgramStartInfo (BuildToolFamilyEnv env)
virtual
System.Diagnostics.ProcessStartInfo 
GetProgramStartInfo (BuildToolFamilyEnv env)
override ICollection
< IBuildProduct
GetTargets ()
DateTime GetValidity ()
virtual DateTime GetValidity ()
DateTime GetValidityDemand ()
virtual DateTime GetValidityDemand ()
DateTime GetValidityTargets ()
bool MayContentFilePrerequisitesSuffice (ContentType target, ICollection< ContentType > prerequisites)
bool TargetsAreConsistent (DateTime validityOfBuildSystem)
virtual bool TargetsAreConsistent (DateTime validityOfBuildSystem)

Static Public Member Functions

static bool ReadCollection (System.Xml.XmlReader reader, AdderSerializable collectorForResults, string outerElementName, string innerElementName)
static
System.Xml.Serialization.IXmlSerializable 
ReadSerializable (System.Xml.XmlReader reader, string elementName)
static void WriteCollectionOfSerializables (System.Xml.XmlWriter writer, System.Collections.IEnumerable serializables, string outerElementName, string innerElementName)
static void WriteSerializable (System.Xml.XmlWriter writer, System.Xml.Serialization.IXmlSerializable obj, string elementName)

Protected Member Functions

void ReadProject (System.Xml.XmlReader reader)
void WriteProject (System.Xml.XmlWriter writer)

Protected Attributes

FileProducts _icons = new FileProducts(ContentType.ICO)
string _mainClass = null
FileProducts _references = new FileProducts(ContentType.DotNetDll)
ContentFile _target

Properties

IBuildActionProvider ActionProvider [get]
ICollection
< OperatingSystem
ApplicableOSs [get]
ICollection
< ContentType
ContentFileTargets [get]
System.CodeDom.Compiler.CompilerParameters DefaultParameters [get]
string Description [get]
FeatureList Features [get]
virtual FeatureList Features [get]
System.CodeDom.Compiler.CompilerInfo Info [get]
bool IsAvailable [get]
string MainClass [get]
string Name [get]
ICollection< Type > ParameterTypes [get]
virtual ICollection
< Type > 
ParameterTypes [get]
ActionPriority Priority [get]
BuildProject Project [get, set]
BuildProject Project [get, set]
IFileProducts References [get]
IFileProducts Sources [get]
ContentFile TargetAssembly [get]
string ToolFamily [get]
IDictionary< string,
EnvironmentVarInfo
UsedVars [get]
IDictionary< string,
EnvironmentVarInfo
UsedVars [get]
virtual IDictionary
< string,
EnvironmentVarInfo
UsedVars [get]


Detailed Description

Wrapper of the Microsoft.CSharp.CSharpCodeProvider class. Microsoft .NET and Mono both implement the Microsoft.CSharp.CSharpCodeProvider as a wrapper of their C# compilers. This build action uses this wrapper as interface to compile C# code.

Constructor & Destructor Documentation

wx.Build.Net.CSharpCodeProvider.CSharpCodeProvider (  ) 

This will be used by the internal framework to create an instance that will be asked for members of IBuildActionClass.


Member Function Documentation

delegate void wx.Build.BaseAction.AdderSerializable ( System.Xml.Serialization.IXmlSerializable  arg  )  [inherited]

Will be called in ReadCollection() if a new object has been found.

Parameters:
arg The object that has been found.

void wx.Build.IBuildAction.AppendBooCode ( List< string >  booCodeLines,
string  indention,
BuildToolFamilyEnv  env 
) [inherited]

This method will create BOO source code and append this code to the provided text writer.

Parameters:
env This is an environment that different tools of the same family may use to exchange information. This store is typically used to save information on configuration files or thinsgs of that kind that will be shared among all tools of the same family.
booCode The code that will actually build something. Each list entry will be a line of code in the resulting BOO program.
indention A string that shall preceed all created lines.
Refer to IBuildActionProvider.AppendToBooPreamble() for an example.
Exceptions:
NotSupportedException Will be thrown if this feature is not supported.

Implemented in wx.Build.AlternativeBuildActions, wx.Build.SequenceOfBuildActions, wx.Build.NamedAction, wx.Build.FileTestAction, wx.Build.Cxx.GCC.GccAsCompiler, wx.Build.Cxx.GCC.GccAsLinker, wx.Build.Cxx.GCC.WindRes, wx.Build.Mono.Gmcs, wx.Build.MS.Cl, wx.Build.MS.Link, wx.Build.MS.RC, wx.Build.MS.Csc, wx.Build.Release.ReplaceVersionInRCFile, and wx.Build.Release.CopyFileAction.

virtual void wx.Build.BaseAction.AppendBooCode ( List< string >  booCodeLines,
string  indention,
BuildToolFamilyEnv  env 
) [virtual, inherited]

This implementation will look for a program start info that implements this actions. If program start info is null, this implementation will raise an exception. Overload this if you have to create another implementation providing this feature.

Parameters:
env This is an environment that different tools of the same family may use to exchange information. This store is typically used to save information on configuration files or thinsgs of that kind that will be shared among all tools of the same family.
booCodeLines The code that will actually build something will be appended to this writer.
indention A string that shall preceed all created lines.
Exceptions:
NotSupportedException Will be thrown if this feature is not supported.
See also:
GetProgrammStartInfo

Reimplemented in wx.Build.FileTestAction, wx.Build.Cxx.GCC.GccAsCompiler, wx.Build.Cxx.GCC.GccAsLinker, wx.Build.Cxx.GCC.WindRes, wx.Build.Mono.Gmcs, wx.Build.MS.Cl, wx.Build.MS.Link, wx.Build.MS.RC, wx.Build.MS.Csc, wx.Build.Release.ReplaceVersionInRCFile, and wx.Build.Release.CopyFileAction.

void wx.Build.IBuildActionProvider.AppendToBooPreamble ( BuildToolFamilyEnv  env,
List< string >  importModules,
List< string >  booDeclarations,
List< string >  booDefinitions 
) [inherited]

This will be called for any action provider before IBuildAction.AppendBooCode() is called. This provides action providers with the opportunity to import modules and create variables for global options.

Parameters:
env Environment containing status that can be shared among tools of the same family.
importModules List of modules that shall be imported. Add required modules here. Each module will be imported exactly once (even if it occurs more than once in the list).
booDeclarations Lines of code that will be added to the preamble of the BOO code. Please note, that each line may only appear once. All subsequent additions of this line of code will be ignored. These lines shall contain declarations of variables etc.
booDefinitions Lines of code that that will be added before the code provided by the actions to build the system. Typically, this will contain the definition of functions that are used on building. Lines starting with "import" will only be added once to the final code.
A typical use is the import of modules that will be used in the later BOO code that builds the project. Please take care on possible side effects on the BOO code of other action providers when declaring BOO variables.
            void AppendToBooPreamble(BuildToolFamilyEnv env, List&lt;string&gt; importModules, List&lt;string&gt; booDeclarations, List&lt;string&gt; booDefinitions)
            {
                booDeclarations.Add("# This option refers to tool XY. Supported values are 1, 2, and 3.");
                booDeclarations.Add("# However, this option actually does not have any effect. So you");
                booDeclarations.Add("# may fill in here whatever you like.")
                booDeclarations.Add("uselessOption = 1 # 1, 2, or 3")
            
                importModules.Add("System.Diagnostics");
                booDefinitions.Add("def RunThisSampleTool(targetName as string, sourceName as string):");
                booDefinitions.Add("  p=System.Diagnostics.Start(\"tool.exe\", \"-o targetName -i sourceName --option uselessOption\")");
                booDefinitions.Add("  p.WaitforExit()");
                boodefinitions.Add("");
            }
Now, imagine, that the action created by this provider implements the following BOO code creation (cf. IBuildAction.AppendBooCode()).
            void AppendBooCode(List<string> booCodeLines, BuildToolFamilyEnv env)
            {
                booCodeLines.Add(string.Format(\"RunThisSampleTool(\\\"0\\\", \\\"1\\\")\", this.Target.FileName, this.Source.FileName));
            }
This will result into the following code. Dots represent fragments that will be inserted by other action providers and actions. Declarations to be managed by the user of the resulting build program will be placed on top. The implementation of the build follows below.
                # This option refers to tool XY. Supported values are 1, 2, and 3.
                # However, this option actually does not have any effect. So you
                # may fill in here whatever you like.
                uselessOption = 1 # 1, 2, or 3
                ...
                booDefinitions.Add("import System.Diagnostics"); // I do not yet trust BOOs builtins
                def RunThisSampleTool(targetName as string, sourceName as string):
                  p=System.Diagnostics.Start("tool.exe", "-o {targetName} -i {sourceName} --option uselessOption")
                  p.WaitforExit()
                
                ...
                RunThisSampleTool("ATargetFile.obj", "ASourceFile.src")

Implemented in wx.Build.Cxx.GCC.GccAsCompiler, wx.Build.Cxx.GCC.GccAsLinker, wx.Build.Cxx.GCC.WindRes, wx.Build.Mono.Gmcs, wx.Build.MS.Cl, wx.Build.MS.Link, wx.Build.MS.RC, and wx.Build.MS.Csc.

virtual void wx.Build.BaseAction.AppendToBooPreamble ( BuildToolFamilyEnv  env,
List< string >  importModules,
List< string >  booDeclarations,
List< string >  booDefinitions 
) [virtual, inherited]

This will be called for any action provider before IBuildAction.AppendBooCode() is called. This provides action providers with the opportunity to import modules and create variables for global options.

Parameters:
importModules List of modules that shall be imported. Add required modules here. Each module will be imported exactly once (even if it occurs more than once in the list).
env This is an environment that different tools of the same family may use to exchange information. This store is typically used to save information on configuration files or thinsgs of that kind that will be shared among all tools of the same family.
A typical use is the import of modules that will be used in the later BOO code that builds the project.
            void AppendToBooPreamble(System.IO.TextWriter booCodeLines)
            {
                booCodeLines.Add("import System.Diagnostics");
                booCodeLines.Add("Process=System.Diagnostics.Process");
            }

Reimplemented in wx.Build.Cxx.GCC.GccAsCompiler, wx.Build.Cxx.GCC.GccAsLinker, wx.Build.Cxx.GCC.WindRes, wx.Build.Mono.Gmcs, wx.Build.MS.Cl, wx.Build.MS.Link, wx.Build.MS.RC, and wx.Build.MS.Csc.

bool wx.Build.BaseAction.AreAllMandatoryVarsDefined (  )  [inherited]

True iff all mandatory environment variables are defined. The project cannot be made if this is false.

void wx.Build.IBuildAction.CollectChoicePoints ( IDictionary< string, ICollection< string >>  collectionOfChoicePoints  )  [inherited]

This method collects all choice points within this action. Choice points are represented by a name and a collection of alternatives.

Parameters:
collectionOfChoicePoints The collection that will be extended by the choice points of this action.
The current implementation provides a choice point for the compilation and linking of C/C++ programs, "CppDevelopmentSystem" of the alternatives "GCC" and "MS VC". Thus, actions on C/C++ compilation will add the following choice point:
            if (!collectionOfChoicePoints.ContainsKey("CppDevelopmentSystem"))
                collectionOfChoicePoints.Add("CppDevelopmentSystem", new List&lt;string&gt;());
            collectionOfChoicePoints["CppDevelopmentSystem"].Add("GCC");
            collectionOfChoicePoints["CppDevelopmentSystem"].Add("MS VC");

Implemented in wx.Build.AlternativeBuildActions, wx.Build.SequenceOfBuildActions, and wx.Build.NamedAction.

void wx.Build.BaseAction.CollectChoicePoints ( IDictionary< string, ICollection< string >>  collectionOfChoicePoints  )  [inherited]

This method collects all choice points within this action. Choice points are represented by a name and a collection of alternatives.

Parameters:
collectionOfChoicePoints The collection that will be extended by the choice points of this action.
The current implementation provides a choice point for the compilation and linking of C/C++ programs, "CppDevelopmentSystem" of the alternatives "GCC" and "MS VC". Thus, actions on C/C++ compilation will add the following choice point:
            if (!collectionOfChoicePoints.ContainsKey("CppDevelopmentSystem"))
                collectionOfChoicePoints.Add("CppDevelopmentSystem", new List&lt;string&gt;());
            collectionOfChoicePoints["CppDevelopmentSystem"].Add("GCC");
            collectionOfChoicePoints["CppDevelopmentSystem"].Add("MS VC");

override bool wx.Build.Net.CSharpCodeProvider.ContainsPrerequisite ( IBuildProduct  prereq  ) 

True iff prereq is among the GetPrerequisites().

Implements wx.Build.IBuildAction.

IBuildAction wx.Build.Net.CSharpCodeProvider.Create ( BuildToolFamilyEnv  env,
IBuildProduct  assemblyTarget,
ICollection< IBuildProduct prerequisites 
)

Creates an action producing assemblyTarget (an assembly file) from the prerequisites . Please note, that this shall also work if prerequisites contains too many files of files of undesired type.

Implements wx.Build.IBuildActionProvider.

bool wx.Build.Net.CSharpCodeProvider.Execute ( BuildToolFamilyEnv  env,
bool  usePortableOptionsOnly 
)

Compile.

Parameters:
usePortableOptionsOnly constrains this with true to exclusively use parameter options which are known to be portable.

bool wx.Build.Net.CSharpCodeProvider.Execute ( BuildToolFamilyEnv  env,
DateTime  validityOfBuildSystem 
)

Compile.

Implements wx.Build.IBuildAction.

System.CodeDom.Compiler.CompilerParameters wx.Build.Net.CSharpCodeProvider.GetParameters ( bool  portable  ) 

Returns the compiler parameters as derived from the arguments and the current BuildConfig.

Parameters:
portable will only add portable options. This affects in particular those CompilerOptions that are only supported for Microsoft.NET but will cause errors in MONO.

override ICollection<IBuildProduct> wx.Build.Net.CSharpCodeProvider.GetPrerequisites (  ) 

Returns a list of sources and references.

Implements wx.Build.IBuildAction.

System.Diagnostics.ProcessStartInfo wx.Build.IBuildAction.GetProgramStartInfo ( BuildToolFamilyEnv  env  )  [inherited]

If this action starts an external program via System.Diagnostics.Process, this will be the start info of the program to start. The result is null if this does not start a program as process. However, even actions that use process info may return null . This information is not mandatory.

Implemented in wx.Build.AlternativeBuildActions, wx.Build.SequenceOfBuildActions, wx.Build.NamedAction, wx.Build.Cxx.GCC.GccAsCompiler, wx.Build.Cxx.GCC.GccAsLinker, wx.Build.Cxx.GCC.WindRes, wx.Build.Mono.Gmcs, wx.Build.MS.Cl, wx.Build.MS.Link, wx.Build.MS.RC, and wx.Build.MS.Csc.

virtual System.Diagnostics.ProcessStartInfo wx.Build.BaseAction.GetProgramStartInfo ( BuildToolFamilyEnv  env  )  [virtual, inherited]

This simply returns null and may serve as standard implementation of those actions that do not use System.Diagnostics.Process.

Reimplemented in wx.Build.Cxx.GCC.GccAsCompiler, wx.Build.Cxx.GCC.GccAsLinker, wx.Build.Cxx.GCC.WindRes, wx.Build.Mono.Gmcs, wx.Build.MS.Cl, wx.Build.MS.Link, wx.Build.MS.RC, and wx.Build.MS.Csc.

override ICollection<IBuildProduct> wx.Build.Net.CSharpCodeProvider.GetTargets (  ) 

Returns a reference to the assembly file as ContentFile.

Implements wx.Build.IBuildAction.

DateTime wx.Build.IBuildObject.GetValidity (  )  [inherited]

Returns validity timstamp of this object. Whenever this is equal or later than all prerequisites, this is considered consistent with the prerequisites on rebuilding.

Implemented in wx.Build.FeatureList, wx.Build.AlternativeBuildActions, wx.Build.SequenceOfBuildActions, wx.Build.NamedAction, wx.Build.RefToProject, wx.Build.ContentFile, wx.Build.ContentFiles, wx.Build.FileSelector, wx.Build.FileProducts, and wx.Build.ResourceDesignator.

virtual DateTime wx.Build.BaseAction.GetValidity (  )  [virtual, inherited]

This is the timestamp representing how current the prerequisites are. The standard implementation will use be the latest validity of a prerequisite.

Reimplemented in wx.Build.BuildProject, and wx.Build.Cxx.wxWidgets.

DateTime wx.Build.IBuildObject.GetValidityDemand (  )  [inherited]

This is the counterpart of the Validity . If this occurs as a prerequisite, this shall be compared with the Validity of the target in order to assess whether rebuild is necessary or not.

Implemented in wx.Build.FeatureList, wx.Build.AlternativeBuildActions, wx.Build.SequenceOfBuildActions, wx.Build.NamedAction, wx.Build.RefToProject, wx.Build.ContentFile, wx.Build.ContentFiles, wx.Build.FileSelector, wx.Build.FileProducts, and wx.Build.ResourceDesignator.

virtual DateTime wx.Build.BaseAction.GetValidityDemand (  )  [virtual, inherited]

This is the timestamp representing the latest change of a prerequisite. The standard implementation will use be the latest validity of a prerequisite.

Reimplemented in wx.Build.BuildProject, and wx.Build.Cxx.wxWidgets.

DateTime wx.Build.BaseAction.GetValidityTargets (  )  [inherited]

This is the earliest validiy of a target.

bool wx.Build.Net.CSharpCodeProvider.MayContentFilePrerequisitesSuffice ( ContentType  target,
ICollection< ContentType prerequisites 
)

Returns true if target is likely to be produced by an action of this type provided that the specified prerequisites are available. If prerequisites contains ContentType.CSharpCode, this will return true . Signed targets also require a key file.

Implements wx.Build.IBuildActionProvider.

static bool wx.Build.BaseAction.ReadCollection ( System.Xml.XmlReader  reader,
AdderSerializable  collectorForResults,
string  outerElementName,
string  innerElementName 
) [static, inherited]

Reads a collection of serializable objects from the provided XML source.

Parameters:
reader XML source
collectorForResults This will add the created results to this collection.
outerElementName name of the XML element that will embrace all elements.
innerElementName Name of the XML element that contains the information of a single serialized object.
Returns:
True if the outer element name has been found. False if this has not been able to parse a term complying with the expected content.

void wx.Build.BaseAction.ReadProject ( System.Xml.XmlReader  reader  )  [protected, inherited]

Reads the features as serialized by WriteFeatures().

Parameters:
reader The source of serialized data

static System.Xml.Serialization.IXmlSerializable wx.Build.BaseAction.ReadSerializable ( System.Xml.XmlReader  reader,
string  elementName 
) [static, inherited]

This reads a serilization that has been created by WriteSerializable(). This only works if an instance of the serialized obejct can be created without arguments.

Parameters:
reader The serialization will be read from this source.
elementName Name of the XML element that encapsulates the serialization.
Returns:
The object instance that has been created from the serialized information.
WriteSerializable

bool wx.Build.IBuildAction.TargetsAreConsistent ( DateTime  validityOfBuildSystem  )  [inherited]

True, if this action is not required to run because all targets are up to date.

Parameters:
validityOfBuildSystem indicates the last change of either this DLL or the assembly defining the project. So, all action will be repeated (even if rebuild is specified) if the project definition changes or the implementation of the build system has been enhanced since the final build. This argument will be computed and propagated by the project.

Implemented in wx.Build.AlternativeBuildActions, wx.Build.SequenceOfBuildActions, and wx.Build.NamedAction.

virtual bool wx.Build.BaseAction.TargetsAreConsistent ( DateTime  validityOfBuildSystem  )  [virtual, inherited]

This simply tests whether the oldest validity of the targets is equal to or more current than the validity of the prerequisites.

Parameters:
validityOfBuildSystem indicates the last change of either this DLL or the assembly defining the project. changes to the build system or the project definition affect of course the validity of the produced targets. Use System.DateTime.MinValue if you do not know or want this to be neglected.

Reimplemented in wx.Build.Cxx.wxWidgets.

static void wx.Build.BaseAction.WriteCollectionOfSerializables ( System.Xml.XmlWriter  writer,
System.Collections.IEnumerable  serializables,
string  outerElementName,
string  innerElementName 
) [static, inherited]

Serializes a collection of serializable objects.

Parameters:
writer This method will write the serialization to this destination.
serializables The collection of object to serialize. All objects must implement System.Xml.Serialization.IXmlSerializable.
outerElementName name of the XML element that will embrace all elements.
innerElementName Name of the XML element that contains the information of a single serialized object.

void wx.Build.BaseAction.WriteProject ( System.Xml.XmlWriter  writer  )  [protected, inherited]

This will serialize the feature list in an XML element "feature-list".

Parameters:
writer Destination of serialized data.

static void wx.Build.BaseAction.WriteSerializable ( System.Xml.XmlWriter  writer,
System.Xml.Serialization.IXmlSerializable  obj,
string  elementName 
) [static, inherited]

Helper to serialize objects of unknown class. This will create an element of the provided element name and attach attributes "assembly" and "type" to this element. These elements will describe the type of the object to serialize. Then, embedded into this new element, the object will be asked to place its serialization.

Parameters:
obj The object that shall be serialized. May be null
elementName Name of the XML element that will be created.
writer The information will be written to this destination.

Use this method to serialize member variables of unknown type like e.g. wx.Build.IFileProducts. Often, projects refer to members where the only known information is: This implements wx.Build.IFileProducts. The project does not need to know more facts with one exception: When deserializing a XML serialization, the project needs to know the exact class because an object instance has to be created. This method will serialize the corresponding information in such a form, that ReadSerializable() can be used to read the written instance.


Member Data Documentation

FileProducts wx.Build.Net.NetCodeProvider._icons = new FileProducts(ContentType.ICO) [protected, inherited]

string wx.Build.Net.NetCodeProvider._mainClass = null [protected, inherited]

FileProducts wx.Build.Net.NetCodeProvider._references = new FileProducts(ContentType.DotNetDll) [protected, inherited]

ContentFile wx.Build.Net.NetCodeProvider._target [protected, inherited]


Property Documentation

IBuildActionProvider wx.Build.Net.CSharpCodeProvider.ActionProvider [get]

This is its own action provider.

Implements wx.Build.IBuildAction.

ICollection<OperatingSystem> wx.Build.Net.CSharpCodeProvider.ApplicableOSs [get]

Not constrained to a paricular operatin system.

Implements wx.Build.IBuildActionProvider.

ICollection<ContentType> wx.Build.Net.CSharpCodeProvider.ContentFileTargets [get]

Produces ContentType.DotNetDll or ContentType.DotNetExe (unsigned) or signed assemblies.

Implements wx.Build.IBuildActionProvider.

System.CodeDom.Compiler.CompilerParameters wx.Build.Net.CSharpCodeProvider.DefaultParameters [get]

The default parameters of the used compiler.

string wx.Build.Net.CSharpCodeProvider.Description [get]

A textual description of this class.

Implements wx.Build.IBuildActionProvider.

FeatureList wx.Build.IBuildAction.Features [get, inherited]

Provides access to the features of this action. Features usually are defined by the project. The project will set this at the actions that it creates to build the task.

Implemented in wx.Build.AlternativeBuildActions, wx.Build.SequenceOfBuildActions, and wx.Build.NamedAction.

virtual FeatureList wx.Build.BaseAction.Features [get, inherited]

Returns the features that are associated with this action. This feature list usually comes from the BuildProject that created this action. Overload this for projects!!!

Reimplemented in wx.Build.BuildProject.

System.CodeDom.Compiler.CompilerInfo wx.Build.Net.CSharpCodeProvider.Info [get]

The compiler info on the used CS compiler.

bool wx.Build.Net.CSharpCodeProvider.IsAvailable [get]

This will try to refer to System .CodeDom.Compiler.CodeDomProvider.IsDefinedLanguage("cs"). This fails on the GNU implementation of the CLR.

Implements wx.Build.IBuildActionProvider.

string wx.Build.Net.NetCodeProvider.MainClass [get, inherited]

Get or set the name of the main class that contains the main program. This will only be used compiling executables. This may be null if not specified. In that case it's up to the action to determine the Main() method to be used to start up the program.

string wx.Build.Net.CSharpCodeProvider.Name [get]

The name of the action. This is for messages and print outs. Usually, this is the name of the action provider. However, projects do not have a provider but a name as member.

Implementors must make sur that names only contain letters, digits and the dot '.'. This is to ease serialization of build plans as batch files.

Implements wx.Build.IBuildAction.

ICollection<Type> wx.Build.IBuildAction.ParameterTypes [get, inherited]

Returns a collection (typically an array) of relevant parameter types in the BuildConfig. This may be empty or null if instances of this class do not refer to parameter types.

Implemented in wx.Build.AlternativeBuildActions, wx.Build.SequenceOfBuildActions, wx.Build.NamedAction, wx.Build.Mono.Gmcs, wx.Build.MS.Cl, and wx.Build.MS.Csc.

virtual ICollection<Type> wx.Build.BaseAction.ParameterTypes [get, inherited]

Returns a collection (typically an array) of relevant parameter types in the BuildConfig. This may be empty or null if instances of this class do not refer to parameter types. The return value of this implementation is null .

Reimplemented in wx.Build.Mono.Gmcs, wx.Build.MS.Cl, wx.Build.MS.Csc, and wx.Build.Cxx.wxWidgets.

ActionPriority wx.Build.Net.CSharpCodeProvider.Priority [get]

Better use explicit calls of the compiler because we then know what it is. So: ActionPriority.Fallback.

Implements wx.Build.IBuildAction.

BuildProject wx.Build.IBuildAction.Project [get, set, inherited]

The project that requested this action. the result may be null if this instance also implements IBuildActionProvider and this instance is meant to be a action provider and not an action. Note, that projects may be set only once. This will be done by the infrastructure. Thus, do not use the setter.

Implemented in wx.Build.AlternativeBuildActions, wx.Build.SequenceOfBuildActions, and wx.Build.NamedAction.

BuildProject wx.Build.BaseAction.Project [get, set, inherited]

The project that requested this action.

IFileProducts wx.Build.Net.NetCodeProvider.References [get, inherited]

Returns a collection of referenced .NET DLLs. ContentType.DotNetExe or types that contain this.

IFileProducts wx.Build.Net.CSharpCodeProvider.Sources [get]

Returns the source files.

ContentFile wx.Build.Net.NetCodeProvider.TargetAssembly [get, inherited]

Returns the name of the assembly to be made.

string wx.Build.Net.CSharpCodeProvider.ToolFamily [get]

The same as Name .

Implements wx.Build.IBuildActionProvider.

IDictionary<string, EnvironmentVarInfo> wx.Build.IBuildAction.UsedVars [get, inherited]

This returns null since useually shell variables are not used by actions. summary> Execute the action and report errors, warnings, and other messages. This will start a build procedure either reusing results of previous builds (rebuild) or making everything from scratch. So, if the desired mode (refer to BuildConfig) is rebuild, this simply does nothing if this action already has been executed with the same prerequisites.

The build environment will pass an occasionally empty instance of class BuildToolFamilyEnv where this may retrieve or store information that other tools of the same family have created before or other tools of the same family may use later. Actions MUST ALSO WORK when started with an empty environment.

Parameters:
validityOfBuildSystem indicates the last change of either this DLL or the assembly defining the project. So, all action will be repeated (even if rebuild is specified) if the project definition changes or the implementation of the build system has been enhanced since the final build. This argument will be computed and propagated by the project.
env Thsi is an environment that different tools of the same family may use to exchange information. This store is typically used to save information on configuration files or thinsgs of that kind that will be shared among all tools of the same family.
Returns:
true on success and false on failure, that should however also be reported to the error handler.

Implemented in wx.Build.AlternativeBuildActions, wx.Build.SequenceOfBuildActions, wx.Build.NamedAction, wx.Build.Cxx.GCC.GccAsCompiler, wx.Build.Cxx.GCC.WindRes, wx.Build.MS.Cl, wx.Build.MS.Link, wx.Build.MS.RC, wx.Build.Release.ReplaceVersionInRCFile, and wx.Build.Release.ReplaceVersionInCSharpFile.

IDictionary<string, EnvironmentVarInfo> wx.Build.IBuildActionProvider.UsedVars [get, inherited]

This returns a description of the used shell variables or a null. The key is the variable name. The value is a remark. So, the following sample provides the declaration of using shell variable path.

            { "path" :
              "This is a list of the directories containing executables that will be found without "
             +"using the absolute path name. This tool will search these directories for ..."

Implemented in wx.Build.Cxx.GCC.GccAsCompiler, wx.Build.Cxx.GCC.WindRes, wx.Build.MS.Cl, wx.Build.MS.Link, and wx.Build.MS.RC.

virtual IDictionary<string, EnvironmentVarInfo> wx.Build.BaseAction.UsedVars [get, inherited]

This returns null since useually shell variables are not used by actions.

Reimplemented in wx.Build.Cxx.GCC.GccAsCompiler, wx.Build.Cxx.GCC.WindRes, wx.Build.MS.Cl, wx.Build.MS.Link, wx.Build.MS.RC, wx.Build.Release.MakeReleaseProject, wx.Build.Release.ReplaceVersionInRCFile, wx.Build.Release.ReplaceVersionInCSharpFile, and wx.Build.Cxx.wxWidgets.


The wx.NET Build System.   (c) 2009-2010 Harald Meyer auf'm Hofe