My favorites | Sign in
Project Logo
Project hosting will be READ-ONLY Wednesday at 8am PST due to brief network maintenance.
                
Code license: Apache License 2.0
Labels: build, msbuild, .net

MetaBuild is a modular and extensible MSBuild based build system.

Every project needs a build system...

Features

Build Modules

Modules 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-ins

Add-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 Builds

MetaBuild 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 Phases

MetaBuild divides its work into 5 build phases, each of which may be extended.

Visual Studio Integration

MetaBuild is designed to work with the project files already created by Visual Studio including those that are not natively represented as MSBuild scripts.

Usage

The MetaBuild distribution includes documentation within the "docs" folder.

History

MetaBuild 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.









Hosted by Google Code