wx.Net.Build Documentation

1.0

This is the source code documentation of the wx.NET build system. In fact, this is not part of the wx.NET code, but this has originally been developed to be used in this project. The system consists of the assembly wx.BuildSystem.dll. The system provides means to define build projects, which are instances of predefined classes, and implement programs for building the targets of these projects or to create BOO source files of programs that can build the targets of the projects. The latter service enables users of the system with uncommon or unsupported build environment to adopt standard build processes to their needs.

One advice in advance: Please avoid to use blank spaces (' ') in names of files or directories because some tools may have problems to access these files.

wx.Build aims at providing a modular and platform independent build environment based on .NET. There are many obvious relations to systems like ant, the MS build system, or other MAKE- and Meta-MAKE systems. The main difference lies in two points:

This build system consists of build actions, that are wrappers of compilers and linkers - like in ANT. Additionally, this system comprises build projects, that define the actual targets of a build. Providers of code define such projects in a .NET assembly. Refer to the remarks on the projects wx.Build.Net.CSharpAssemblyProject and wx.Build.Cxx.DynamicLibraryProject. These classes create plans comprising build actions that actually build the projects. The projects are able to identify alternative sets of tools, like e.g. the MS cl.exe compiler and link.exe on the one hand to build C/C++ DLLs or the MinGW distribution of the GCC compiler on the other hand. The schedule that will be created by the build project uses all supported tools that are installed. Thus, if the MS cl.exe compiler fails to compile a file, the build system will try to use alternative tools like the MinGW compiler and linker.

However, in many situations, users want to configure the building process by hand. Maybe, some tools are not installed in standard directories or the build process runs in an unsupported environment. For this reason, the Build process is able to produce a BOO file that builds the targets. This file has a structure that is easy to change and acts like a make file.

However, the current implementation is more or less a proof-of-concept implementation, since it only provides wrappers for those tools and implements those types of projects that are required to build wx.NET.

Refer to page Typical Use for remarks on how to use build programs that are based on this library.


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