Build Definition Languages - Provides a declarative, non-Turing-complete DSL for defining software builds with targets and dependencies.
Cross-Platform Build Systems - Compiles software for a different operating system or bare-metal environment than the host machine.
Ninja Integration - Generates Ninja build files from a declarative DSL, enabling fast parallel builds with automatic dependency tracking.
Ninja Build File Generators - Generates Ninja build files from a declarative project description, handling compiler detection and dependency resolution.
Build Configurations - Generates Ninja build instructions from a declarative project description, handling compiler detection and dependency resolution.
Multi-Language Build Support - Builds projects written in C, C++, C#, D, Fortran, Java, and Rust on Linux, macOS, and Windows.
Build Target Definitions - Specifies executables, libraries, and custom build artifacts with source files, compiler arguments, and link dependencies.
Build Toolchain Abstractions - Abstracts toolchain and system root configuration to build software for different target platforms from a single project definition.
Multi-Language Build Systems - Builds projects written in C, C++, Rust, and other languages with a fast, declarative build definition and Ninja backend.
Parallel Build Engines - Compiles the project using the default Ninja backend, which automatically detects the number of CPU cores for parallel builds.
Dependency Management - Fetches and manages external library dependencies across platforms, integrating with system package managers.
Dependency Management - Resolves and links external libraries and frameworks, including system packages and subproject dependencies.
Multi-Language Compilation Frontends - Supports compiling C, C++, C#, D, Fortran, Java, and Rust within a single build system, unifying language-specific toolchains.
Cross Compilation Toolchains - Configures toolchains and system roots to compile software for different target platforms.
Non-Turing-Complete Languages - Uses a simple, readable domain-specific language that avoids arbitrary computation, ensuring predictable and fast configuration.
Automatic Dependency Resolution - Fetches and links external libraries from system package managers or subprojects, resolving transitive dependencies.
Build Performance Optimizers - Optimizes both full and incremental builds for speed while maintaining correctness.
Compiler Flag Customization - Passes extra compiler and linker flags through environment variables, or switches to plain mode to supply all flags manually.
Dependency Build Options - Sets project-wide or target-specific compiler flags, preprocessor definitions, and other build-time parameters.
Custom Command Execution - Executes arbitrary shell commands during the build process, such as code generation or custom build steps.
IDE Integration Tools - Exposes build targets and configuration data through a machine-readable API for editor and IDE integration.
Machine-Readable Build APIs - Exposes build targets and configuration data through a structured API, enabling editor and IDE tooling without parsing build files.
Machine-Readable Build APIs - Exposes build targets and configuration data through a machine-readable API for editor and IDE integration.
Installation Artifact Tagging - Installs only build artifacts explicitly marked for installation, supporting DESTDIR for packaging and deployment workflows.
Test Suite Execution - Runs test suites with native support, compatible with any testing framework like GTest.
Build Systems - High-speed, user-friendly build system for software projects.