Glossary · Automation software engineering and architecture
Build system
Also known as: Build tool
German: Build-System
In software engineering, a build system is a tool that automates the transformation of source files into build artifacts by determining dependencies between files and running compilers, linkers, code generators and other tools in the correct order. Examples include Make, CMake, MSBuild, Gradle and Bazel.
- Software engineering
In one sentence
A build system automates turning source files into artifacts by resolving dependencies and running compilers and other tools in order.
Example
The firmware team uses CMake to build the same communication stack for two processor targets, each with its own toolchain file.
How it applies
- Engineering: The build system knows which outputs depend on which inputs and rebuilds only what changed. For embedded software it also selects toolchains, target settings and linker scripts.
- Automation projects: PLC engineering tools often contain their own build logic; command-line or scripting interfaces allow a Build pipeline to call them. Mixed projects, such as firmware plus PLC code plus an HMI, may need several build systems orchestrated together.
- Documentation: Build instructions, required tool versions and environment settings should be documented and kept in version control. Without them, a machine's software may be impossible to rebuild years later when a fix is needed.
Build system vs. build pipeline
The build system performs a build on one machine. The Build pipeline orchestrates the build system together with tests, analysis and publishing on a CI server. A reliable pipeline needs a build system that works non-interactively and gives the same result on every agent.