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.