Skip to content

Releases: bfgroup/b2

5.4.2

22 Dec 05:15

Choose a tag to compare

Fix detection of Visual Studio 2026 to account for non-native tools being installed by default and hence conflicting with the native tools.

5.4.1

21 Dec 06:32

Choose a tag to compare

Fix error in path environment variables not being properly processed to split on path separator.

5.4.0

20 Dec 22:23

Choose a tag to compare

This is the end of year release. Biggest new items are the detection of Visual Studio 2026 (aka msvc145).

  • New: Add initial support for C++-26 Contracts for GCC based toolsets (like clang).
    -- René Ferdinand Rivera Morell
  • New: Allow explicit target triple for clang-linux and clang-darwin.
    -- Dmitry Arkhipov
  • New: Change documentation style to support light/dark user preference.
    -- René Ferdinand Rivera Morell
  • New: Added the ability to escape the '$' character before '(' as "$$" which will allow using the "$()" and "$(())" expressions of bash, sh, and other shells.
    -- Ivan Kotov
  • New: Added integration for vcpkg with distinct roots.
    -- Dmitry Arkhipov
  • New: Add support for detecting and building with VS-2026 (AKA vs-18.0, aka msvc 14.5).
    -- Miuna, Zangetsu, René Ferdinand Rivera Morell
  • Fix invoking asciidoctor on Windows.
    -- René Ferdinand Rivera Morell
  • Fix, propagate dll-path to shared libraries.
    -- Dmitry Arkhipov
  • Fix mpi compiler detection to detect not just the first one (mpi++).
    -- Samuel Debionne
  • Fix flag options, that are not registered as args, not being recognized. Fixes --show-libraries in Boost build files.
    -- Dmitry Arkhipov
  • Fix discovery and building with Python free-threaded variant.
    -- Zhang Wen
  • Fix build issues with QNX compiolers.
    -- "fragarian"
  • Add libstdc++ to stdlib feature as the current naming for that std library.
    -- Dmitry Arkhipov
  • Fix building when targetting WASM64 with emscripten.
    -- Uilian Ries
  • Fix resolution of subprojects of rooted projects.
    -- Dmitry Arkhipov
  • Fix crash when using -d9 to output module debug stats.
    -- René Ferdinand Rivera Morell

5.3.3

19 Jun 13:22

Choose a tag to compare

  • Fix stdlib=libc++ feature being applied to compiles other than C++. -- Dmitry Arkhipov
  • Fix silently ignored argument parsing errors. -- Dmitry Arkhipov
  • Fix not allowing "/" in paths for msvc version detection. -- chausner

5.3.2

15 Apr 22:29

Choose a tag to compare

Fix regression for handling of the --command-database option. The new command line arguments parsing made the output to be reset and cleared causing nothing to get output for the commands. Thanks to Dmitry Arkhipov for the fix.

5.3.1

05 Apr 04:07

Choose a tag to compare

Fix backward incompatibility of option.get if an argument is not added with args.add-arg. When such an argument isn't registered we fail to check ARGV directly as a backup, for backward compatibility. This fixes that problem by checking if an argument is registered, and if not falling back on the direct ARGV check.

5.3.0

04 Apr 03:20

Choose a tag to compare

Biggest changes for this release is the creation of two new toolsets: ibmcxx and cc. The former covers all the IBM compilers, and the latter is a generic C compiler toolset.

  • New: Replace the old vacpp and xlcpp with a new ibmcxx toolset that supports the old compilers and the new "IBM XL" and "IBM Open XL" compilers.
    -- René Ferdinand Rivera Morell and Chris Ward
  • New: Add generic cc toolset for simply, direct, configuration of unknown C compiler toolsets (for example tcc).
    -- René Ferdinand Rivera Morell
  • New: Add args module for common handling of both native and Jam side command line arguments.
    -- René Ferdinand Rivera Morell
  • Fix command database output file path when an output dir is not given.
    -- René Ferdinand Rivera Morell
  • Fix asciidoctor ignoring relevant features when building which caused invalid reuse of the target.
    -- René Ferdinand Rivera Morell
  • Add documentation for clang and emscripten toolsets.
    -- Nikita Kniazev
  • Fix doxygen tool to properly handle paths relative to the wording dir or absolute paths.
    -- Dmitry Arkhipov
  • Fix staging path calculation when using install prefix's.
    -- Dmitry Arkhipov
  • Make toolset.using preserve current project to allow for calling it in more contexts with minimal effort.
    -- Dmitry Arkhipov
  • Updated cxxstd=latest for gcc and clang to account for C++ 26.
    -- Andrey Semashev
  • Fix Building on Haiku OS which doesn't have wait4.
    -- Fas Xmut
  • Rewrite the command like argument parsing to use the Lyra library. The result is that arguments from Jam and native are integrated and available with the built-in -h help.
    -- René Ferdinand Rivera Morell

WARNING: The vacpp and xlcpp have been removed in favor of ibmcxx as the latter covers the same support.

5.2.1

15 Jun 00:09

Choose a tag to compare

This patch reverts the change to define _HAS_EXCEPTIONS=0 for Dinkumware
std library. It has the undesired effect of changing the ABI. It's better for
user code to handle the combination of turning off exceptions while treating
warnings as errors, and getting warnings/errors from the std library by having
the users silence the warning themselves.

This patch also fixes the case of asking to initialize any msvc toolset
versions (using msvc ;) when there are already versions initialized. Instead
of erroring to say that a version is already in use, it considers the set
of already initialized msvc toolsets as satisfying the request to generally
initialize msvc.

5.2.0

11 Jun 12:51

Choose a tag to compare

Many fixes in this release from regular contributors Nikita and Dmitry. There
are a couple of new features.. First the ability to have dll-path in searched
libraries. Which makes it possible to better support system/external libraries.
The second new feature is the addition of generating compile_commands.json
for IDE and tool integration. That has a been a wish item for a long time.

  • New: Add support for generating compile_commands.json command database
    for some IDE integration.
    -- René Ferdinand Rivera Morell
  • New: Addition of a module (db) for structured data management. Has a
    property-db class that can write out as JSON data.
    -- René Ferdinand Rivera Morell
  • New: Allow adding dll-path to usage requirements of searched libraries.
    Which makes it possible to adjust search paths for dynamic libs on the
    platform.
    -- Dmitry Arkhipov
  • Fix incorrect recursive loading of modules when doing recursive importing of
    modules. The recursive loading would cause stack overflows.
    -- René Ferdinand Rivera Morell
  • Default to building with Clang on FreeBSD and OpenBSD.
    -- Nikita Kniazev
  • Fix Solaris/SunOS detection in engine for OS=SUNOS and OS=SOLARIS.
    -- Nikita Kniazev
  • Allow some tools to be default initialized with using multiple times. The
    tools are asciidoctor, fop, gettext, pkg-config, python, sass,
    and saxonhe.
    -- Dmitry Arkhipov
  • Fix using relevant features in ac module that would cause incorrect configure
    checks.
    -- Dmitry Arkhipov
  • Fix application of -m31, -m32, -m64 for address model on certain hardware and
    avoid adding them when not supported, generally.
    -- Nikita Kniazev
  • Fix incorrectly attaching manifest when not targeting Windows for engine
    bootstrap build.
    -- Nikita Kniazev
  • Fix embed-manifest-via=linker for clang-win toolset.
    -- Nikita Kniazev
  • Fix incorrect unknown OS name, to use correct none. Which is needed for
    correct emscripten toolset building.
    -- Nikita Kniazev
  • Fix: For msvc toolset, register only the versions that have been asked to
    init.
    -- Nikita Kniazev
  • Fix: Suppress spurious 1 file(s) copied. message after every test.
    -- Nikita Kniazev
  • Fix: Improve handling of install directories.
    -- Dmitry Arkhipov
  • Fix: For msvc toolset, recognize Visual Studio 2022 v17.10.0, which uses
    toolchain version 14.40.33807.
    -- Dmitry Andric
  • Fix: For msvc toolset, exception-handling=off should define
    _HAS_EXCEPTIONS=0 for Dinkumware/MSSTL.
    -- Nikita Kniazev

5.1.0

10 Mar 14:21

Choose a tag to compare

This is mostly a bugfix release to account for issues impacting Boost Libraries. There is one "big" change though. It can be rather difficult to find build failures when running larger builds. To facilitate figuring out problems the brief summary output at the end of a build is now less brief. It now includes a sorted list of the targets that got skipped and failed. The output of those lists mirrors the general skipped/failed items. Hence it's possible to search for the same strings in the rest of the output quickly.

  • New: Add listing of failed and skipped targets to end of build summary to make it easier to find what fails.
    -- René Ferdinand Rivera Morell
  • New: Add mpi.run-flags to mpi toolset that allows for arbitrary flags applied to running mpi targets. This allows, for example, adding --oversubscribe flag to make it possible to run tests where the tasks are more than the nodes available.
    -- René Ferdinand Rivera Morell
  • Fix spurious errors when the header scanning tries to scan empty file names.
    -- René Ferdinand Rivera Morell
  • Make C/C++/ObjC include directive scanning pattern more strict to avoid trying to scan for empty file names.
    -- Andrey Semashev
  • Fix mingw linker commands to always replace backslashes with forward slashes.
    -- Christian Seiler
  • Fix QCC debug build flag. The QCC toolset was using an old, no longer supported, debug symbols option.
    -- John McFarlane