More Details

This sections provides more detail about different parts of Forge. Read as your interest or need directs.

  • Commands describes how to write high-level commands for the build system to carry out, e.g. install.

  • Rules decribes rules and how they define behavior for targets

  • File Rules describes how to define rules that build a single output file from one or more input files using the file rule function.

  • Pattern Rules describes how to define rules that build one or more output files with filenames based on the filenames of their input files using the pattern rule function.

  • Group Rules describes how to define rules that group source files that generate one or more output files so they can be passed to a single invocation of a tool, e.g. building C or C++ source files with Microsoft Visual C++.

  • Modules describes how to bundle rules, default settings, and per-machine detection of tools and paths into resuable modules.

  • Buildfile Syntax describes the declarative syntax seen in buildfiles and some Lua idioms that appear often in Forge.

  • Dependencies describes the different types of dependencies, how they are used, and how they affect whether or not targets are outdated and the order in which targets are built.

  • Outdated Calculation describes how targets are determined to be outdated based on their dependencies and the settings used to build them.

  • String Interpolation describes the string interpolation used to expand ${...} references in toolset tags and target identifiers.

  • Automatic Dependencies describes how implicit dependencies can be automatically detected by tracing calls that open files for reading or writing when running a tool.