build2
| Blog
14 Aug 2024
| Changes to Package Review/Transition Policies- We are inviting the
build2
community to help with reviewing package submissions. We are also adjusting the package transition policies between queue.cppget.org and cppget.org as well as between sections within cppget.org. Specifically, migrating a package from queue.cppget.org to cppget.org no longer requires a review, only that the package builds in at least one configuration. As a result, thealpha
,beta
, andtesting
sections of cppget.org may now contain unreviewed packages. However, a package can only be migrated fromtesting
tostable
if it passes a review. See the full announcement for details. 18 Jun 2024
|build2
0.17.0 Released- The main area of focus in this release was again more advanced
functionality for more complex projects. There are also notable improvements
in C++20 modules support, including for
import std;
in Clang and MSVC. On the documentation front, we now have a comprehensive, step-by-step guide for packaging third-party projects forbuild2
.There are also quite a few smaller features in this release, such as new
buildfile
value types and functions, including support for JSON. Additionally, a large amount of maintenance work has been done, mostly in the form of handling various corner cases and fixing bugs. For example, there are about a hundred commit messages in this release that start withFix
. 04 Jul 2023
|build2
0.16.0 Released- The two main areas of focus in this release are the system package
manager integration and more advanced functionality for more complex
projects. The system package manager support includes both consumption and
production of binary distribution packages, including uploading them from
the CI builds. This support required a large amount of ground work which
produced functionality useful in its own right, such as relocatable
installations, installation filtering, and installation manifests. The more
advanced functionality includes built-in support for the Objective-C/C++ and
Assembler with C Preprocessor (
.S
) compilation, dynamic target extraction in addition to prerequisites, and support for buildfile importation.There are also quite a few smaller features in this release, such as new functions, commands, and builtins, as well as a large amount of maintenance work, including the low verbosity diagnostics overhaul and support for diagnostics buffering. We have also continued with our performance optimizations in the build system and the package manager which should especially help projects with a large number of dependencies.
28 Jul 2022
|build2
0.15.0 Released- The overall theme of this release is more advanced functionality that is
becoming necessary as we start to use
build2
to handle more complex projects. Specifically, the package manager now supports a number of more advanced dependency declaration features, including conditional dependencies, dependency alternatives, and dependency configuration. On the build system side we now have rule hints, support for dynamic dependencies in ad hoc recipes, and the ability to save user metadata in C/C++ libraries (plus 23 other items mentioned in theNEWS
file). The following sections discuss these and other new features in detail.Another new development is the creation of the HOWTO repository with practical advice on using
build2
to achieve common tasks. At the time of the release the repository contained 10 articles. 02 Nov 2021
| Boost Libraries Packaged forbuild2
- We have added support for the
build2
build system to 136 out of 145 Boost libraries and version 1.77.0 is now available from thecppget.org
package repository. 26 Oct 2021
| Build Tools for Build-Time Dependencies- One of the main features in the just released
build2
0.14.0 is support for build-time dependencies and the target/host configuration split that it necessitates. However, this support is of no use without any tools to depend on at build-time. So we've packaged a number of base tools that can be useful both in your own work as well as when packaging third-party projects. 19 Oct 2021
|build2
0.14.0 Released- The main focus of this release is support for build-time dependencies and the host/target configuration split that it necessitates. This support required a large amount of ground work which produced functionality useful in its own right, such as hermetic builds and configuration linking. Another notable new feature is ad hoc regex pattern rules.
01 Mar 2021
| Upcoming Repository Certificate Replacement- Both
cppget.org
andstage.build2.org
package repository certificates will be replaced with renewed versions on Tue the 9th of Mar 2021 at 12pm UTC. This will result in the change of certificate fingerprints. If you have these fingerprints specified as part of thetrust
values in your project'srepositories.manifest
files or--trust
option values inbpkg
orbuild2
toolchain install script invocations, then you will need to update any such places with new fingerprints. 16 Feb 2021
| Complete C++20 Modules Support with GCC- The
build2
toolchain now provides conforming and scalable support for all the major C++20 Modules features when used with GCC. This includes named modules, module partitions (both interface and implementation), header unit importation, and include translation. All of these features are also supported in libraries, including consumption of installed libraries with information about modules and importable headers conveyed inpkg-config
files. As part of this effort we have also created a collection of examples that demonstrate C++20 Modules features that impact the build process. 19 Jan 2021
| Kconfig Support inbuild2
- The
build2
toolchain now includes a build system module that allows using the Linux kernel configuration system (Kconfig) to configurebuild2
-based projects. 01 Dec 2020
| Compiling C/C++ on Apple M1- The release of Apple M1 CPU has sure generated a lot of interest. Intrigued by impressive benchmark results, we got an Apple Mini with M1 to test C/C++ compilation.
20 Jul 2020
|build2
0.13.0 Released- The main focus of this release is build system support for
project-specific configurations and ad hoc recipes. Another notable new
feature is support for alternative (e.g., with
include/src
split) source code layouts by thebdep-new
command. 20 Nov 2019
|build2
0.12.0 Released- The main objective of this release was support for build system modules and it took a while to tie up all the loose ends in this area. As a result, this release has accumulated quite a large number of other major new features across all the tools in the toolchain.
11 Jun 2019
|build2
0.11.0 Released- This release contains a large number of new features across all the tools (build system, package and project dependency managers, etc). It also includes experimental support for C++ modules header unit importation and include translation.
19 Mar 2019
|build2
0.10.0 Released- Coming shortly after
0.9.0
, this is more of a maintenance release that nevertheless includes a good number of new features. It was also an opportunity to hone our release process with the overall goal of increasing the release cadence. 21 Feb 2019
|build2
0.9.0 Released- Overall, the main focus of this release was "quality of life" improvements. It includes a large number of bug fixes, tweaks to existing features, as well as new features that should all make for a smoother, more pleasant development experience.
12 Sep 2018
|build2
0.8.0 Released- This release includes a large number of major new features, primarily in
the build system and project dependency manager, as well as substantial
additions to the documentation. We have also started ci.cppget.org, a free CI service for open
source projects that use
build2
. 30 May 2018
|build2
0.7.0 Released- This release is essentially a brand new toolchain, with new tooling, new workflow, and new documentation. A relaunch, if you will.
08 Aug 2017
|build2
0.6.0 Released- The bulk of the development in this release cycle has again gone into
the build system. The two features that undoubtedly stand out are support
for C++ Modules TS and precise C/C++ source change detection. Other notable
new features include build progress display, automatic generation of
pkg-config
files for installed libraries, and initial support for utility libraries. 04 May 2017
|build2
0.5.0 Released- With almost 500 commits, the bulk of the development in this release cycle has gone into the build system. The two major features are parallel builds and Testscript. There is also a large number of usability improvements, including support for wildcard patterns and automated project version management.
01 Apr 2017
| Important Project Announcements- We have several very important announcements about exciting new
developments in the
build2
project... ok, it's April 1 and everyone knows this is a hoax.