BuildSystem
A build system is a set of tools and processes that automates transforming source code and assets into executable programs, libraries, or distribution packages. It manages compilation, linking, testing, packaging, and installation, and coordinates use of compilers, toolchains, and other utilities. A build script or configuration defines the project’s targets, their dependencies, and the commands needed to produce outputs.
Core concepts include a dependency graph, where nodes represent targets (such as object files, libraries, or
A typical workflow involves parsing configuration, constructing the dependency graph, deciding what must be rebuilt, executing
Common examples include Make, CMake, Meson, Bazel, Gradle, and Maven; Ninja focuses on fast execution. Some tools