General

Project root

The project root is defined as the directory where the root configuration file resides.

Build Directory

The build directory is the directory where fabricate stores its own and ninja configuration. It is also where dependencies are downloaded and where ninja stores build output.

Dependencies

Fabricate’s philosophy on dependencies differs greatly from its counterparts. Instead of trying to build the projects itself it exposes an interface for you (the user) to tell fabricate how to build them. This is more tedious but in general is a more flexible solution that can be adapted for projects using any build system.

Dependencies are currently only supported as git repositories. Check out fab.dependency() and Dependency.

Ninja

Fabricate is a meta build system. This means Fabricate does not build anything itself, rather it generates instructions for another build system. This other build system is Ninja, it is the one and only build system supported by Fabricate.

Compile Commands

Fabricate will generate a “compile_commands.json” into the build directory by default. Note that only rule objects that turn on the compdb flag will actually produce output into compile commands.