List_of_build_automation_software

List of build automation software

List of build automation software

Add article description


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.

Make-based

  • GNU make, a make implementation with a large set of extensions
  • make, a Unix build tool
  • mk, developed originally for Version 10 Unix and Plan 9, and ported to Unix as part of plan9port
  • MPW Make, developed for the classic Mac OS and similar to but not compatible with Unix make; the modern macOS (OS X) comes with both GNU make and BSD make; available as part of Macintosh Programmer's Workshop as a free, unsupported download from Apple
  • nmake
  • PVCS-make, follows the concept of make but with additional syntax features[1]

Make-incompatible

  • Apache Ant, popular for Java platform development and uses an XML file format
  • Apache Buildr, historic open-source build system, Rake-based, gives the full power of scripting in Ruby with integral support for most abilities wanted in a build system
  • Apache Maven, a Java platform tool for dependency management and automated software build
  • ASDF LISP build system for building LISP projects
  • A-A-P, a Python-based build tool
  • Bazel, a portion of Blaze (Google's own build tool) written in Java, using Starlark (BUILD file syntax) to build projects in Java, C, C++, Go, Python, Objective-C, and others
  • BitBake, a Python-based tool with the special focus of distributions and packages for embedded Linux cross-compilation
  • Boot, a Java build and dependency management tool written in Clojure
  • boost.build For C++ projects, cross-platform, based on Perforce Jam
  • Buck, a build system developed and used by Facebook, written in Java, using Starlark (BUILD file syntax) as Bazel
  • Buildout, a Python-based build system for creating, assembling and deploying applications from multiple parts
  • Cabal, a common architecture for building applications and libraries in the language Haskell
  • Dub, the official package and build manager of the D Language
  • dale,[2] a D build tool
  • FinalBuilder, for Windows software developers. FinalBuilder provides a graphical IDE to both create and run build projects in a single application. The final builder also includes the ability the execute the unit test, deploy web projects or install and test applications.
  • Flowtracer, a build management tool
  • Gradle, an open-source build and automation system with an Apache Groovy-based domain specific language (DSL), combining features of Apache Ant and Apache Maven with more features like a reliable incremental build
  • Grunt, a build tool for front-end web development
  • Gulp, a build tool for front-end web development
  • IncrediBuild, a suite of grid computing software for compiling and building software
  • Leiningen, a tool providing commonly performed tasks in Clojure projects, including build automation
  • Mix, the Elixir build tool
  • MSBuild, the Microsoft build engine
  • NAnt, a tool similar to Ant for the .NET Framework
  • Ninja, a small build system focused on speed by using build scripts generated by higher-level build systems
  • Perforce Jam, a build tool by Perforce, inspired by Make
  • Qt Build System
  • Rake, a Ruby-based build tool
  • rez,[3] a C/C++ build tool
  • sbt, a build tool built on a Scala-based DSL
  • SCons, Python-based, with integrated functionality similar to autoconf/automake
  • Stack, a tool to build Haskell projects, manage their dependencies (compilers and libraries), and to test and benchmark.
  • tinyrick,[4] a Rust build tool
  • vast,[5] a shell build tool
  • Visual Build, a graphical user interface software for software builds
  • Waf, a Python-based tool for configuring, compiling and installing applications. It is a replacement for other tools such as Autotools, Scons, CMake or Ant

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).

  • BuildAMation, a multi-platform tool, using a declarative syntax in C# scripts, that builds C/C++ code in a terminal using multiple threads, or generates project files for Microsoft Visual Studio, Xcode or MakeFiles.
  • CMake generates files for various build tools, such as make, ninja, Apple's Xcode, and Microsoft Visual Studio.[6] CMake is also directly used by some IDE as Qt Creator,[7] KDevelop and GNOME Builder.[8]
  • GNU Build System (aka autotools), a collection of tools for portable builds. These in particular include Autoconf and Automake, cross-unix-platform tools that together generate appropriate localized makefiles.
  • GYP (Generate Your Projects) - Created for Chromium; it is another tool that generates files for the native build environment. It has been superseded by GN which generates files for ninja and other build systems.
  • imake
  • Meson, a build system optimized for performance and usability is based on ninja on Linux, Visual Studio on Windows and Xcode on macOS. Meson is also directly used by GNOME Builder.[8]
  • OpenMake Software Meister
  • Premake, a Lua-based tool for making makefiles, Visual Studio files, Xcode projects, and more
  • qmake

Continuous integration

Configuration management

Package managers

A package manager is a meta-build tool capable of building many different projects using a subset of existing build tools, generally using a list or repository of build scripts called "packages".

Others

  • checkinstall, checkinstall is a program that monitors an installation procedure and creates a standard package for your distribution.
  • Open Build Service, a hosted service to help build packages for various Linux distributions

Licensing overview

More information Tool name, Description language ...

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.

Share this article:

This article uses material from the Wikipedia article List_of_build_automation_software, and is written by contributors. Text is available under a CC BY-SA 4.0 International License; additional terms may apply. Images, videos and audio are available under their respective licenses.