SoftwareSphere Home

Overview

C++ Build Studio is a software system designed to solve the problems of C++ software development, like multiple projects, configurations and building.

This tool can be very useful to software companies or software departments of larger industries which use the C++ programming language for their projects.

Most of the commercial Integrated Development Environments (IDE) for C++ are focused on source code editing and debugging, and on building single modules. Instead C++ Build Studio is based on the concept of a C++ software as a set of modules, the modules can be static libraries, dynamic link libraries or executables.

The main aim of this application is to provide easy ways to handle large collections of C++ libraries or modules, and to rebuild them singularly or by groups.

The tool also dependency analysis, files statistics, source code editing and many other utilities. The following diagram shows the organization of this build system:

The buildspace file is written in simple XML format and contains just the filepaths of the source files, the target names and the names of their configurations. The following is an example of a buildspace file:


The buildspace file format is very simple. A Buildspace element can contain more Package elements and Bundle elements, a Package element can contain a series of Source elements and a Bundle element can contain a series of Target elements. Each element has just few optional attributes.

The simplicity of the buildspace files makes it possible to write very simple scripts to generate the buildspace files, however the buildspace file format is so simple that it is very easy to write the file by hand.

The configuration files are stored in a separate directory. The builder module connects to several compiler toolkits.

Main features

Robust file format The buildspaces are saved in simple XML format, and don't contain any of the options of the compiler or linker program. Buildspace files can be edited by hand and can be easily created by other tools. Configuration files are in XML or INI format and are validated respect to a configuration template.

Easy handling of multiple targets Targets are grouped by bundles. A bundle defines the builder to use and its configuration. You can rebuild a single target or an entire bundle.

Manage different forms of the same library A project can have multiple targets of different types but containing the same source code, for example a set of source files can be compiled into a static library or a dynamic link library.

View module dependencies You can see all the dependencies among packages and then decide which to leave and which to remove.

Dependency extractor and analyzer The program provides a set of useful tools to discover and list the dependencies among source files and among libraries:

Tools for structuring packages The program contains a series of tools to help in maintaining the desired package structure:

Here you can find a longer description about the problems of C++ software development and about the design of this build system. To know more about the principles of C++ source code organization there is this book.

Current status

Currently the application is still under testing but it has already been used successfully to build and rebuild several large C++ projects.

The current version of C++ Build Studio runs on Microsoft Windows systems, from Windows 98 to Windows Vista, the Linux version is still under construction.

The builder definitions currently support the following compiler toolkits: Microsoft C/C++ compiler version of Visual C++ 6.0 and version of Visual C++ 2008. The definitions for the other compilers will be ready soon.

Here are some screenshots with descriptions of the latest version while testing it on a large collection of C++ libraries.

If you have any questions about this project contact us.