|
Project Information
Links
|
MetaBuild is a modular and extensible MSBuild based build system. Every project needs a build system... FeaturesBuild ModulesModules are declarative units containing build rules. In its simplest form, a module consists of a few MSBuild items that describe projects to build, files to copy, tests to run, and other referenced modules that must be built. It may also contain additional targets with tasks that are to be performed at various points in the build cycle. Modules partition the build rules for the system into manageable units. In a system with 50 projects, there may be a dozen or more modules that are responsible for building different pieces of functionality. Modules present an attractive alternative to the traditionally impenetrable monolithic build script. Build Add-insAdd-ins introduce new base functionality into the build system. For example, one add-in contributes support for C# projects while another one adds support for C++ projects, and so on. Add-ins are simply MSBuild scripts that extend the core build system with new behaviors. This enables a high degree of modularity and reuse in the implementation of the build system itself. Parallel BuildsMetaBuild leverages the MSBuild 3.5 parallel build feature. The implementation takes care to batch up as many projects as possible to achieve maximum efficiency. Build PhasesMetaBuild divides its work into 5 build phases, each of which may be extended.
Visual Studio IntegrationMetaBuild is designed to work with the project files already created by Visual Studio including those that are not natively represented as MSBuild scripts. UsageThe MetaBuild distribution includes documentation within the "docs" folder. HistoryMetaBuild is an offshoot of the modular build system that was originally designed for MbUnit and Gallio. It was developed to mitigate the complexity of maintaining several large (100+ project) source trees at Ingenio / AT&T Yellowpages.com. |