Package wx.Build

Utilities of the wx.NET build system. More...


Classes

class  AlternativeBuildActions
class  BaseAction
class  BuildConfig
class  BuildParameters
class  BuildProcessRefersToShellProcess
class  BuildProcessTerminated
class  BuildProject
class  BuildProjectAttribute
class  BuildToolFamilyEnv
class  CollectionOfBuildActions
class  CommandLineOptions
class  ContentFile
class  ContentFiles
 Designates a whole bunch of content files sharing the same content type. More...
class  ContentType
class  DirectoryList
class  DirectoryName
class  EnvironmentVarInfo
class  ErrorDataReceiver
class  ErrorObject
class  FeatureEntry
class  FeatureList
class  FileProducts
class  FileProject
class  FileSelector
class  FileTestAction
interface  IBuildAction
interface  IBuildActionProvider
interface  IBuildObject
interface  IBuildProduct
interface  IFileProducts
interface  ISingleFileProduct
interface  IXmlRefData
class  NamedAction
class  RefDataSerializazer
class  RefToFileProject
class  RefToProject
class  RefToSingleFileProject
class  ResourceDesignator
class  SequenceOfBuildActions
class  SingleFileProject
class  TempFilesParameters
class  ToolSpecificOptionsCollection

Packages

package  Cxx
package  Mono
 Contains wrappers of the Mono .NET framework and SDK tools.
package  MS
 Contains wrappers around Microsoft's .NET framework and SDK tools.
package  Net
package  Release
 This namespace contains classes for creating releases.

Enumerations

enum  AbortOptions
enum  ActionPriority
enum  BuildMode
enum  ContentFileLocation
enum  ContentFileProperties
enum  OperatingSystem
enum  ProjectPreference

Functions

delegate void ErrorHandler (ErrorObject errorObject)


Detailed Description

Utilities of the wx.NET build system.

otes for Contributors

The wx.NET build system consists of basic building actions like encapsulations of C# and C++ compilers. Basic actions are often of constrained applicability. They often require external tools, certain operating systems etc.

Main classes are BuildConfig where you can manipulate the configuration to be used for building and class BuildProject. Create an instance of a BuildProject and call BuildProject.CreateActionPlan() or BuildProject.Build().


Enumeration Type Documentation

enum wx::Build::AbortOptions

Options to abort an action. This will usually be part of the build parameters. These will be interpreted by the actions. However, the intention is to define an overall valid rule to abort the build process w.r.t. several incidents.

Enumerator:
TreatWarningsAsErrors  Abort build process on warnings. This ensures accurat builds. However, what will we do in case of warnings.
AbortOnErrorsAndMissingData  Each compiler will abort on errors. Also missing data will stop the actions.
AlwaysTryToProduceASomehowUsefulTarget  Will even refuse to abort the build process if usually required data is missing as long as the product will have a least standard quality. .NET action will for instance proceed on building even if a specified signature is missing or a specified Win32 icon cannot be found etc.

enum wx::Build::ActionPriority

Build actions will be created dynamically. Constants of this enumeration will be used by the actions to state, whether they have to be executed or not.

Enumerator:
PreferredByUserInput  This has been prefered according to user input. This is even more important than preference according to the static implementation (cf. Preferred) .
Preferred  An action of this kind will be preferably used. If this fails, alternatives will be searched (also of priority default).
Default  Actions of this kind will be used, if preferred actions are either not available or they failed.
Fallback  Actions of this kind will be used, if neither preferred nor default actions are available or they failed.

enum wx::Build::BuildMode

Symbols to control the reuse of previous build operations. This will be set globally in the configuration.

Enumerator:
BuildNew  Do not reuse results of previous builds.
BuildMissingTargets  Reuse results from previous builds as long as they are consistent. Use IBuildProduct.Validity to assess consistency.

enum wx::Build::ContentFileLocation

Represents the location of a ContentFile.

Enumerator:
LocalFileSystem  The file name exists in the local file system. The file name will be normalized to a full path name. Validity will be determined according the last write access to the file.
GlobalAssemblyCache  The file name is considered to denote an assembly from the global assembly cache. The validity will be mapped to the version of the assembly that will be read with System .Runtime.Assembly.LoadFile().
InConfiguredDirectories  The filename is relative to a configured directory. This option is for instance required providing static libs to linkers as simple filenames. Such files will typically be searched in configured directories.

All services of this instance referring to properties of the file on the local file system are not available if this is used.

enum wx::Build::ContentFileProperties

A bit vector representing several properties of content files that are relevant to the build process. A type inherits all properties from those types that are contained.

Enumerator:
None  Constant to represent that files do not exhibit remarkable properties.
NetAssembly  The file is a .NET assembly (linkable)
StrongNameAssembly  This is among the properties, if this contains an assembly of a strong name.
NativeDLL  File contains a DLL containing native code.
NativeStaticLib  File contains a statically linkable library of native code objects. Files of this kind may be used to build programs but not to contain DLL entries.
NativeCodeObject  File contains statically linkable code objects also maybe DLL entries. All files of this property result from a compiler and may serve as input of linkers.
PlainText  True if file is a stream of characters.
UTF8Text  True, if file is a stream of UTF8 characters.
UTF16Text  True, if file is a stream of UTF16 characters.
Latin1Text  True, if file is a stream of ISO-8859-1 characters.
ASCIIText  True, if file is a stream of ASCII 8-bit characters but not using 128-255.
CodeObjectSrc  This is plain text containing source code to be compiled into a code object.
InlinedCodeSrc  This is a plain text that is not meant to be compiled to a code object but containing declarations and macros or code to be inlined.
Compressed  This property specifies that files of this type have been compressed by an appropriate algorithm. If this holds true, some actions might choose not to run another compression since this is, because of this property, assumed to have no effect.
Executable  This is an executable program.
NetExecutable  This is an executabl program requiring the .NET runtime environment to work.
NativeCodeExecutable  This is an executable program containing native code.
WindowsResourceObject  Contains RES-files and alternatives for other linkers. Everything that can be built from RC-files. wx.Build.Cxx.DynamicDllProject will identify all types of files that are appropriate to contain Windows resources by this flag.
XMLText  Text in XML syntax. This may also describe project files or data serializations as loong as the result can be parsed as XML.
NetRessource  A resource that can be linked into a .NET executable.
DependsOnOSAndProcessor  This is valid if files of this type may only be used on computers running a particular OS and a particular processor architecture. This is e.g. true for all native executables and code libraries.
NetCodeObj  This is valid for all files containing .NET code. This is a property of those files that have been created by a .NET framework.

enum wx::Build::OperatingSystem

Operating system.

Enumerator:
WinXP 
Linux 
MacOsX 

enum wx::Build::ProjectPreference

These options control, which projects will be achieved during the build process. Cf. BuildProject.Preference

Enumerator:
Default  Projects of this kind will be achieved by default. However, they may be deferred by user input.
Optional  Projects of this kind wlll not be built by default but if the user desires this explicitely.
DoNotOffer  Projects of this kind will only be built if required by actions. This projects will even not offered to the user for building.


Function Documentation

delegate void wx.Build.ErrorHandler ( ErrorObject  errorObject  ) 

Type for means to produce output on errors and warnings. Refer to ErrorDataReceiver if you want to use error handlers with System .Diagnostics.Process. summary> This class is a utility to use the ErrorHandler in System.Diagnostics.Process.Start(). Shell commands are typically executed by the System.Diagnostics.Process.Start() command. Build tools will usually do this specifying a System.Diagnostics.Process.StartInfo disabling use of the command shell but redirecting output of errors and messages.

This handler may be used as asynchron receiver of messages from the error stream that redirects this output to an ErrorHandler. Sample code:

        System.Diagnostics.Process process = new System.Diagnostics.Process();
        process.StartInfo.FileName="commandToRun.exe";
        process.StartInfo.ErrorDialog = false;
        process.StartInfo.CreateNoWindow = false;
        process.StartInfo.UseShellExecute = false;
        process.StartInfo.RedirectStandardError = true;
        process.StartInfo.RedirectStandardOutput = true;
        ErrorDataReceiver receiver=new ErrorDataReceiver(this.Name, messages);
        process.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(receiver.OnReceiveErrorStreamData);
        process.Start();
        process.BeginErrorReadLine();
        process.BeginOutputReadLine();
        process.WaitForExit();
        bool success=process.ExitCode == 0;


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