Ninja
- Ninja Manual
- Came out of work on Google Chrome circa February 06, 2011
- List of generators producing ninja build files
differs from other build systems in two major respects: it is designed to have its input files generated by a higher-level build system, and it is designed to run builds as fast as possible. Why yet another build system?
Where other build systems are high-level languages Ninja aims to be an assembler.
Ninja build files are human-readable but not especially convenient to write by hand. (See the generated build file used to build Ninja itself.) These constrained build files allow Ninja to evaluate incremental builds quickly.
CMake
- CMake Tutorial — CMake 3.27.1 Documentation
- CMake Reference Documentation — CMake 3.27.1 Documentation
Commonly Used Build Systems
This section is llm-generated
- Make: Make is one of the oldest and most widely used build automation tools. It uses Makefiles, which contain rules specifying how to build a software project from source code.
- CMake: CMake is a cross-platform build system generator. It allows developers to describe the build process in a platform-independent manner using CMakeLists.txt files.
- Gradle: Gradle is a build automation tool that is primarily used for building Java, Kotlin, and Android projects. It uses a Groovy-based domain-specific language (DSL) or Kotlin for defining build scripts.
- Maven: Maven is a popular build automation and dependency management tool for Java projects. It uses Project Object Model (POM) files to define project configurations and dependencies.
- Ant: Ant (Apache Ant) is a Java-based build tool similar to Make. It uses XML-based build scripts and provides a flexible and extensible framework for building Java projects.
- MSBuild: MSBuild is the build system used by Microsoft Visual Studio and .NET Framework. It is XML-based and provides a powerful set of features for building .NET applications.
- Bazel: Bazel is an open-source build system developed by Google. It is designed to handle large, complex software projects and supports multiple programming languages.
- Ninja: Ninja is a fast and lightweight build system that aims to be simple and efficient. It is often used in conjunction with other build systems like CMake to improve build times.
- SCons: SCons is a software construction tool written in Python. It uses Python scripts to define the build process and supports building projects in various programming languages.
- Rake: Rake is a build tool commonly used in Ruby projects. It uses Ruby scripts called Rakefiles to define build tasks and dependencies.