/** \defgroup build \brief Fost uses the Boost.Build system. Typically Fost applications are build from several libraries with most of the logic going into the libraries. The executables are fairly simple just providing some basic command line plumbing that drives the core functionality from the libraries. Some familiarity of Boost.Build is needed to really understand what is going on, but if that's too much then take a look at the Hello world example available at . More complete examples can be found at and .

Building blocks

All of the Fost specific rules in fost.jam in fost-base are optional, but using them will make most projects a little be simpler to create builds for.

Jamroot

Each project requres a Jamroot file which contains some basic information about the project. There is some boiler plate that needs to go in here too.

Examples

A minimal Jamroot which just brings in the Fost rules and activates the fost-base project as a dependancy.
# Allow other scripts to work relative to the Jamroot location
path-constant TOP : . ;

# Some includes used to provide new rules and configuration
include ../boost-version.jam ;
include ../fost-base/fost.jam ;

#Define this project
fost-project hello ;

# Bring in the projects used
use-project fost-base : ../fost-base ;

# The parts of the system that need to be built
build-project Cpp/hello-lib ;

Jamfiles

Each build target will normally have a Jamfile in the same folder as its source code that describes what the target is and how to build it.

Common build rules

fost-project

fost-project name : requirments ;
This is used in the Jamroot file and allows some control over the parameters to used to build the project.

fost-lib-autotest

fost-lib-autotest name : location : libraries : requirements : install-location ;
This is the basic build rule for creating a library and running its tests.

Examples

This library is in the folder Cpp/hello-lib relative to the Jamroot file. It requires no additional libraries over and above fost-core which is automatically added.
fost-lib-autotest hello-lib
    : Cpp/hello-lib
    ;

fost-exe

fost-exe name : sources ;
This rule creates an executable. */