List of build automation software

Last updated

Build automation involves scripting or automating the process of compiling computer source code into binary code. Below is a list of notable tools associated with automating build processes.

Contents

Make-based

Make-incompatible

Build script generation

These generator tools do not build directly, but rather generate files to be used by a native build tool (as the ones listed in the previous two sections).

Continuous integration

Configuration management

Meta-build

A meta-build tool is capable of building many different projects using a subset of existing build tools. Since these usually provide a list of packages to build, they are also often called package managers.

Others

Licensing overview

Tool nameDescription languageLicense
A-A-P recipe GNU GPL
Ant XML Apache License 2.0
AnthillPro Wraps Make, Ant, Maven, MsBuild, Nant, etc. for controlled build, deploy, test processes.Discontinued
Bamboo continuous integration Trialware
Bazel BUILD/Starlark, a Python-like DSL Apache License 2.0
BuildAMation C# for build scripts, XML for high level dependencies New BSD License
Buildr Ruby Apache License 2.0
Boot Clojure Eclipse Public License
Capistrano XML MIT License
CMake uses CMakeLists.txt file New BSD License
Collective Knowledge Framework Python scripts with JSON API and JSON meta-description New BSD License
Continuum  ? Apache License 2.0
CruiseControl XML BSD-style license
Dub JSON, SDL MIT License
FinalBuildergraphical IDE with support for Ant/NAnt, MSBuild, JScript, VBScript, IronPython, PowerShell Trialware
Gradle Groovy-based DSL; Kotlin-based DSL Apache License 2.0
Jenkins continuous integration MIT License
Homebrew Ruby Simplified BSD License
Leiningen Clojure Eclipse Public License
make uses MakefileSame as the bundling OS
Maven Project Object Model Apache License 2.0
Meson build system custom DSL Apache License 2.0
MPW Make  ? Freeware
MSBuild XML MIT License
NAnt XML GNU GPL
nmake uses Makefile Freeware
Open Build Service uses various package and image description formats (spec, dsc, ARCH, kiwi) GNU GPL
Perforce Jam uses JamfileDiscontinued
Rake Ruby MIT License
sbt (Simple Build Tool) Scala-based DSL New BSD License
SCons Python MIT License
Team Foundation Server MSBuild, Windows Presentation Foundation, JSON - REST interfaces, Programmatic (Can generate definitions through code) Trialware
Visual Build XML Trialware
Waf Python New BSD License

Related Research Articles

An integrated development environment (IDE) is a software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, and a debugger. Some IDEs, such as NetBeans and Eclipse, contain the necessary compiler, interpreter, or both; others, such as SharpDevelop and Lazarus, do not.

<span class="mw-page-title-main">GNU Autotools</span> Suite of programming tools

The GNU Autotools, also known as the GNU Build System, is a suite of programming tools designed to assist in making source code packages portable to many Unix-like systems.

In software development, Make is a build automation tool that builds executable programs and libraries from source code by reading files called makefiles which specify how to derive the target program. Though integrated development environments and language-specific compiler features can also be used to manage a build process, Make remains widely used, especially in Unix and Unix-like operating systems.

<span class="mw-page-title-main">KDevelop</span> Integrated development environment

KDevelop is a free and open-source integrated development environment (IDE) for Unix-like computer operating systems and Windows. It provides editing, navigation and debugging features for several programming languages, and integration with build automation and version-control systems, using a plugin-based architecture.

<span class="mw-page-title-main">Xcode</span> IDE including tools for developing software for Apple platforms

Xcode is Apple's integrated development environment (IDE) for macOS, used to develop software for macOS, iOS, iPadOS, watchOS, tvOS, and visionOS. It was initially released in late 2003; the latest stable release is version 14.3.1, released on June 1, 2023, and is available free of charge via the Mac App Store and the Apple Developer website. Registered developers can also download preview releases and prior versions of the suite through the Apple Developer website. Xcode includes command-line tools which enable UNIX-style development via the Terminal app in macOS. They can also be downloaded and installed without the GUI.

<span class="mw-page-title-main">Apache Ant</span> Java software tool

Apache Ant is a software tool for automating software build processes which originated from the Apache Tomcat project in early 2000 as a replacement for the Make build tool of Unix. It is similar to Make, but is implemented using the Java language and requires the Java platform. Unlike Make, which uses the Makefile format, Ant uses XML to describe the code build process and its dependencies.

<span class="mw-page-title-main">SCons</span>

SCons is a computer software build tool that automatically analyzes source code file dependencies and operating system adaptation requirements from a software project description and generates final binary executables for installation on the target operating system platform. Its function is analogous to the traditional GNU build system based on the make utility and the autoconf tools.

<span class="mw-page-title-main">CMake</span> Cross-platform, compiler-independent build system generator

In software development, CMake is cross-platform free and open-source software for build automation, testing, packaging and installation of software by using a compiler-independent method. CMake is not a build system itself; it generates another system's build files. It supports directory hierarchies and applications that depend on multiple libraries. It is used in conjunction with native build environments such as Make, Qt Creator, Ninja, Android Studio, Apple's Xcode, and Microsoft Visual Studio. It has minimal dependencies, requiring only a C++ compiler on its own build system.

<span class="mw-page-title-main">Waf (build system)</span>

Waf is a build automation tool designed to assist in the automatic compilation and installation of computer software. It is written in Python and maintained by Thomas Nagy.


This is a comparison of notable free and open-source configuration management software, suitable for tasks like server configuration, orchestration and infrastructure as code typically performed by a system administrator.

Qbs is a cross-platform free and open-source software for managing the build process of software. It was designed to support large, complex projects, written in any number of programming languages, primarily C/C++.

<span class="mw-page-title-main">Qt Creator</span> QT development environment

Qt Creator is a cross-platform C++, JavaScript, Python and QML integrated development environment (IDE) which simplifies GUI application development. It is part of the SDK for the Qt GUI application development framework and uses the Qt API, which encapsulates host OS GUI function calls. It includes a visual debugger and an integrated WYSIWYG GUI layout and forms designer. The editor has features such as syntax highlighting and autocompletion. Qt Creator uses the C++ compiler from the GNU Compiler Collection on Linux. On Windows it can use MinGW or MSVC with the default install and can also use Microsoft Console Debugger when compiled from source code. Clang is also supported.

The Java Development Kit (JDK) is a distribution of Java Technology by Oracle Corporation. It implements the Java Language Specification (JLS) and the Java Virtual Machine Specification (JVMS) and provides the Standard Edition (SE) of the Java Application Programming Interface (API). It is derivative of the community driven OpenJDK which Oracle stewards. It provides software for working with Java applications. Examples of included software are the virtual machine, a compiler, performance monitoring tools, a debugger, and other utilities that Oracle considers useful for a Java programmer.

GYP is an obsolete build automation tool created in 2011 by Google. Its purpose was to generate native IDE project files for building the Chromium web browser and is licensed as open source software using the BSD software license.

<span class="mw-page-title-main">Meson (software)</span> Build automation system

Meson is a software tool for automating the building (compiling) of software. The overall goal for Meson is to promote programmer productivity. Meson is free and open-source software written in Python, under the Apache License 2.0.

<span class="mw-page-title-main">Bazel (software)</span> Software tool that automates software builds and tests

Bazel is a free and open-source software tool used for the automation of building and testing software. Google uses the build tool Blaze internally and released an open-sourced port of the Blaze tool as Bazel, named as an anagram of Blaze. Bazel was first released in March 2015 and was in beta status by September 2015.

<span class="mw-page-title-main">KDE Projects</span>

KDE Projects are projects maintained by the KDE community, a group of people developing and advocating free software for everyday use, for example KDE Plasma and KDE Frameworks or applications such as Amarok, Krita or Digikam. There are also non-coding projects like designing the Breeze desktop theme and iconset, which is coordinated by KDE's Visual Design Group. Even non-Qt applications like GCompris, which started as a GTK-based application, or web-based projects like WikiToLearn are officially part of KDE.

References

  1. mailing list discussion about porting PVCS-make scripts to GNU-make, From: Paul D. Smith, Subject: Re: PVCS to GNU, Date: 2003-02-25
  2. "dale: a paranoid D task runner". April 12, 2023 via GitHub.
  3. "rez: C/C++ task runner". April 18, 2023 via GitHub.
  4. "tinyrick: a freeform Rust build system". April 12, 2023 via GitHub.
  5. "vast: a build tool for shell scripts". April 8, 2023 via GitHub.
  6. "cmake-generators(7) — CMake 3.11.1 Documentation". cmake.org.
  7. "Setting Up CMake - Qt Creator Manual". doc.qt.io.
  8. 1 2 "GNOME Builder Development Environment Picking Up Many Features For GNOME 3.28 - Phoronix". www.phoronix.com.
  9. https://confluence.atlassian.com/bitbucket/build-test-and-deploy-with-pipelines-792496469.html Cross-platform