build2 build system
This package contains the build2 build system.
build2 is an open source, cross-platform toolchain for building and packaging
C++ code. Its aim is a modern build system and dependency manager for the C++
language that provide a consistent, out of the box interface across multiple
platforms and compilers. For more information see:
https://build2.org/
See the NEWS file for the user-visible changes from the previous release.
See the LICENSE file for the distribution conditions.
See the INSTALL file... More
Depends (1)
Requires (1)
Reviews
Builds
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_fedora_44-gcc_16-bindist |
| timestamp |
2026-08-14 16:45:12 UTC (07:50:55 hours ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_rhel_8-gcc_8-bindist |
| timestamp |
2026-08-13 18:13:19 UTC (01 06:22:49 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-clang_22_libc++-O3 |
| timestamp |
2026-08-11 22:35:01 UTC (03 02:01:07 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-apple-darwin23.5.0 |
| tgt config |
macos_14-gcc_14_homebrew-static_O3 |
| timestamp |
2026-08-11 22:27:01 UTC (03 02:09:07 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-apple-darwin23.5.0 |
| tgt config |
macos_14-gcc_14_homebrew-O3 |
| timestamp |
2026-08-11 22:19:46 UTC (03 02:16:22 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-clang_22_libc++ |
| timestamp |
2026-08-11 22:13:54 UTC (03 02:22:14 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-apple-darwin23.5.0 |
| tgt config |
macos_14-gcc_14_homebrew |
| timestamp |
2026-08-11 22:04:46 UTC (03 02:31:22 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-clang_22_libc++-static_O3 |
| timestamp |
2026-08-11 21:45:43 UTC (03 02:50:25 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-clang_22-O3 |
| timestamp |
2026-08-11 21:42:03 UTC (03 02:54:05 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-clang_22 |
| timestamp |
2026-08-11 21:39:27 UTC (03 02:56:41 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-clang_22-static_O3 |
| timestamp |
2026-08-11 21:38:13 UTC (03 02:57:55 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-apple-darwin23.5.0 |
| tgt config |
macos_14-clang_15.0-static_O3 |
| timestamp |
2026-08-11 21:12:50 UTC (03 03:23:18 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-apple-darwin23.5.0 |
| tgt config |
macos_14-clang_15.0-O3 |
| timestamp |
2026-08-11 21:07:27 UTC (03 03:28:41 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-gcc_14-O3 |
| timestamp |
2026-08-11 21:03:35 UTC (03 03:32:33 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-apple-darwin23.5.0 |
| tgt config |
macos_14-clang_15.0 |
| timestamp |
2026-08-11 20:59:50 UTC (03 03:36:17 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-gcc_14-static_O3 |
| timestamp |
2026-08-11 20:43:23 UTC (03 03:52:45 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-gcc_14 |
| timestamp |
2026-08-11 20:33:33 UTC (03 04:02:35 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-gcc_14-ndebug_O3 |
| timestamp |
2026-08-11 19:58:28 UTC (03 04:37:39 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-clang_18_libc++-static_O3 |
| timestamp |
2026-08-11 19:52:37 UTC (03 04:43:30 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-clang_18_libc++-O3 |
| timestamp |
2026-08-11 19:52:13 UTC (03 04:43:54 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-clang_18_libc++ |
| timestamp |
2026-08-11 19:43:40 UTC (03 04:52:27 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-gcc_16-O3 |
| timestamp |
2026-08-11 19:40:54 UTC (03 04:55:14 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-clang_18-O3 |
| timestamp |
2026-08-11 19:38:59 UTC (03 04:57:09 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-clang_18 |
| timestamp |
2026-08-11 19:31:48 UTC (03 05:04:19 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-clang_18-static_O3 |
| timestamp |
2026-08-11 19:19:16 UTC (03 05:16:51 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-gcc_16-static_O3 |
| timestamp |
2026-08-11 19:17:26 UTC (03 05:18:42 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-gcc_16 |
| timestamp |
2026-08-11 19:13:14 UTC (03 05:22:54 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-apple-darwin22.5.0 |
| tgt config |
macos_13-clang_15.0 |
| timestamp |
2026-08-11 18:32:54 UTC (03 06:03:13 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-gcc_16-ndebug_O3 |
| timestamp |
2026-08-11 18:20:38 UTC (03 06:15:30 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-freebsd15.0 |
| tgt config |
freebsd_15-clang_19-O3 |
| timestamp |
2026-08-11 17:49:06 UTC (03 06:47:02 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_ubuntu_24.04-gcc_13-bindist |
| timestamp |
2026-08-11 17:48:26 UTC (03 06:47:41 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-gcc_14-bindist |
| timestamp |
2026-08-11 17:46:59 UTC (03 06:49:08 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-clang_21_libc++ |
| timestamp |
2026-08-11 17:45:51 UTC (03 06:50:16 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-clang_21 |
| timestamp |
2026-08-11 17:38:58 UTC (03 06:57:09 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_12-gcc_14 |
| timestamp |
2026-08-11 17:34:33 UTC (03 07:01:35 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-gcc_15-O3 |
| timestamp |
2026-08-11 17:32:34 UTC (03 07:03:33 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-freebsd15.0 |
| tgt config |
freebsd_15-clang_19 |
| timestamp |
2026-08-11 17:27:47 UTC (03 07:08:21 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_12-gcc_12-bindist |
| timestamp |
2026-08-11 17:26:03 UTC (03 07:10:05 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_13-gcc_15 |
| timestamp |
2026-08-11 17:20:02 UTC (03 07:16:05 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-freebsd15.0 |
| tgt config |
freebsd_15-clang_19-static_O3 |
| timestamp |
2026-08-11 17:16:51 UTC (03 07:19:17 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-freebsd14.1 |
| tgt config |
freebsd_14-clang_18 |
| timestamp |
2026-08-11 17:12:41 UTC (03 07:23:27 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
aarch64-linux-gnu |
| tgt config |
linux_debian_12-gcc_13 |
| timestamp |
2026-08-11 13:16:36 UTC (03 11:19:32 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_11-gcc_10.2-bindist |
| timestamp |
2026-08-11 12:41:41 UTC (03 11:54:27 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-microsoft-win32-msvc14.0 |
| tgt config |
windows_10-msvc_14.3 |
| timestamp |
2026-08-11 12:29:45 UTC (03 12:06:23 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-microsoft-win32-msvc14.2 |
| tgt config |
windows_10_devmode-msvc_16.11 |
| timestamp |
2026-08-11 12:18:06 UTC (03 12:18:02 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-microsoft-win32-msvc14.2 |
| tgt config |
windows_10-msvc_16.11 |
| timestamp |
2026-08-11 12:08:28 UTC (03 12:27:40 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-microsoft-win32-msvc14.1 |
| tgt config |
windows_10-msvc_15.9 |
| timestamp |
2026-08-11 12:03:32 UTC (03 12:32:36 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_9-gcc_8.4 |
| timestamp |
2026-08-11 11:55:46 UTC (03 12:40:22 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_8-gcc_4.9 |
| timestamp |
2026-08-11 11:55:35 UTC (03 12:40:33 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_12-gcc_13.1 |
| timestamp |
2026-08-11 11:55:01 UTC (03 12:41:07 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_9-gcc_7.4 |
| timestamp |
2026-08-11 11:48:55 UTC (03 12:47:13 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_ubuntu_16.04-clang_3.7_libc++ |
| timestamp |
2026-08-11 11:47:47 UTC (03 12:48:21 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_11-gcc_12.1 |
| timestamp |
2026-08-11 11:45:47 UTC (03 12:50:20 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_11-gcc_11.3 |
| timestamp |
2026-08-11 11:38:10 UTC (03 12:57:58 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_10-gcc_10.2 |
| timestamp |
2026-08-11 11:32:38 UTC (03 13:03:29 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_debian_10-gcc_9.3 |
| timestamp |
2026-08-11 11:32:21 UTC (03 13:03:47 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_rhel_9-gcc_11-bindist |
| timestamp |
2026-08-09 14:29:05 UTC (05 10:07:02 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_fedora_43-gcc_15-bindist |
| timestamp |
2026-08-09 13:39:24 UTC (05 10:56:44 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-microsoft-win32-msvc14.5 |
| tgt config |
windows_10-clang_21_msvc_18-O2 |
| timestamp |
2026-08-06 11:15:25 UTC (08 13:20:43 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-microsoft-win32-msvc14.5 |
| tgt config |
windows_10-clang_21_msvc_18 |
| timestamp |
2026-08-06 11:11:19 UTC (08 13:24:49 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-microsoft-win32-msvc14.5 |
| tgt config |
windows_10-clang_21_msvc_18-static_O2 |
| timestamp |
2026-08-06 11:09:21 UTC (08 13:26:47 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-microsoft-win32-msvc14.5 |
| tgt config |
windows_10-msvc_18-O2 |
| timestamp |
2026-08-06 10:41:38 UTC (08 13:54:30 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-microsoft-win32-msvc14.5 |
| tgt config |
windows_10-msvc_18-static_O2 |
| timestamp |
2026-08-06 10:39:19 UTC (08 13:56:49 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-microsoft-win32-msvc14.5 |
| tgt config |
windows_10-msvc_18 |
| timestamp |
2026-08-06 10:38:06 UTC (08 13:58:02 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-microsoft-win32-msvc14.3 |
| tgt config |
windows_10-msvc_17 |
| timestamp |
2026-08-06 10:17:12 UTC (08 14:18:55 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-linux-gnu |
| tgt config |
linux_ubuntu_26.04-gcc_15-bindist |
| timestamp |
2026-08-04 16:24:12 UTC (10 08:11:56 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-w64-mingw32 |
| tgt config |
windows_10-gcc_15.2_mingw_w64-O2 |
| timestamp |
2026-08-04 13:05:11 UTC (10 11:30:56 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-w64-mingw32 |
| tgt config |
windows_10-gcc_15.2_mingw_w64 |
| timestamp |
2026-08-04 13:01:04 UTC (10 11:35:04 days ago) |
| result |
success | log | rebuild |
| toolchain |
public-0.18.1 |
| target |
x86_64-w64-mingw32 |
| tgt config |
windows_10-gcc_15.2_mingw_w64-static_O2 |
| timestamp |
2026-08-04 12:59:12 UTC (10 11:36:55 days ago) |
| result |
success | log | rebuild |
Changes
Version 0.18.0
* Support for `while`-loop in the Buildfile language.
See the "Buildfile Language" section in the manual for details.
* Support for `continue` and `break` in loops in the Buildfile and scripting
languages.
* `ifn` and `ife` shortcuts in the Buildfile and scripting languages.
These flow control shortcuts allow more succinct expression of is/is-not
\c{null} and empty checks. They are equivalent to the following more
verbose expressions:
ifn ... ~ if $null(...)
ife ... ~ if $empty(...)
ifn! ... ~ if! $null(...)
ife! ... ~ if! $empty(...)
elifn ... ~ elif $null(...)
elife ... ~ elif $empty(...)
elifn! ... ~ elif! $null(...)
elife! ... ~ elif! $empty(...)
* New Buildfile and scripting language functions:
- $front(), $back() and $json.array_front(), $json.array_back()
Return first/last element in a sequence.
- $sha256sum(), $xxh64sum()
Compute SHA256 and XXH64 checksums of a string.
- $builtin.generate_uuid()
Generate UUID.
- $string.{compare,filter,filter_out}()
Compare or filter/filter out strings.
There is now also support for the `contains`, `contains_once`,
`starts_with`, and `ends_with` flags in $string.{find,find_index}().
- $process.search()
Search in PATH to determine absolute executable path.
* New scripting languages builtins:
- sha256sum
Compute SHA256 checksum of a file or stdin.
- xxh64sum
Compute XXH64 checksum of a file or stdin.
Also, the `ln` builtin now supports creating hard links in addition to
symbolic.
* New json{} builtin target type.
It represents a JSON text file and has the .json default extension.
* Shell script and task runner executable.
The portable scripting language that is used for buildfile recipes
(Buildscript) and test scripts (Testscript) has been generalized to also
provide a general-purpose shell scripting flavor (Shellscript). Such shell
scripts can be executed with the `bx` executable which is now provided
alongside the build system driver (`b`). See the bx(1) man page for
details.
* Buildscript/Testscript/Shellscript syntax version 2.
The version 2 is an improved syntax that should be used in new projects.
Existing projects should also be eventually migrated to the new syntax.
The syntax changes in version 2 compared to version 1 are:
- Flow-control constructs (`if`, `for`, etc) are no longer terminated with
the `end` line. Instead, the commands inside need to be enclosed into
curly braces, which can be omitted for a single command. For example,
syntax 1:
if true
echo one
echo two
end
if true
echo one
end
Syntax 2:
if true
{
echo one
echo two
}
if true
echo one
- Testscript groups are now enclosed into double curly braces ({{ }}).
For example, syntax 1:
: basics
:
{
: test1
:
$* test1
: test2
:
$* test2
}
Syntax 2:
: basics
:
{{
: test1
:
$* test1
: test2
:
$* test2
}}
- Testscript commands in explicit test scopes are no longer separated with
semicolons. For example, syntax 1:
: test1
:
{
$* pre;
$* test1;
$* post
}
Syntax 2:
: test1
:
{
$* pre
$* test1
$* post
}
The syntax version is selected based on the project's build2 version
constraint in the manifest (`depends: build2 >= X.Y.Z`). Specifically, if
the required version is equal to or great than 0.18.0, then syntax 2 is
automatically selected. Otherwise, version 1 is used for backwards
compatibility.
The desired syntax can also be specified explicitly, both at the buildfile
and script levels, with the {shellscript,buildscript,testscript}.syntax
variables. For example:
# root.build
#
testscript.syntax = 1
* Support for JSON compilation database generation and maintenance.
See the "Compilation Database" section in the "cc Module" chapter of
the manual for details.
* Support for specifying compile options on exe/lib{} targets
It is now possible to specify compile option (*.poptions and *.coptions)
on the exe/lib{} targets (we call them "binary-specific compile
options"). Such options are propagated to obj/bmi{} targets that are
synthesized for source prerequisites of the binary. Note that this
propagation does not apply to explicit (non-synthesized) obj/bmi{}
prerequisites. For example:
exe{foo}: cxx{foo} obj{common}
{
cxx.poptions += -DFOO
}
exe{bar}: cxx{bar} obj{common}... More