Skip to content

Releases: bfgroup/b2

5.2.1

15 Jun 00:09
Compare
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
Compare
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
Compare
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

5.0.1

31 Jan 02:55
Compare
Choose a tag to compare
  • Fix compile errors for older versions of GCC and Clang toolset for the engine.
    We now support building the engine with GCC 4.7 and Clang 3.6 onward.
    -- René Ferdinand Rivera Morell
  • Fix import-search failing to find imports on Windows bacause of incorrect
    native vs. non-native path handling.
    -- René Ferdinand Rivera Morell
  • Support cross-compile install of B2, using target-os=xyz.
    -- René Ferdinand Rivera Morell

5.0.0

23 Dec 19:51
Compare
Choose a tag to compare

This is a new era in B2. The drive of this new major version is to move the core build system from being implemented in Jam to C++. This initial release is only a start in this move by having some minimal aspects implemented in C++ using a new Jam/C++native binding system. Even though this is a major release, the goal is to still have backward compatibility for existing project build files. But that backward compatibility is not guaranteed for other Jam files.

  • New: Support for Jam native variant values of string (original Jam value type), number (floating point numbers), and object (instances of classes).
    -- René Ferdinand Rivera Morell
  • New: Port modules class, errors, modules, regex, set, string, and sysinfo to C++.
    -- René Ferdinand Rivera Morell
  • New: Port bootstrap.jam to C++ and instead use build-system.jam as key file to find build files.
    -- René Ferdinand Rivera Morell
  • New: Add require-b2 builtin rule to verify the B2 version a particular Jam file needs.
    -- René Ferdinand Rivera Morell
  • New: Add regex.grep builtin that does parallel (where available) file content search with regex matching.
    -- René Ferdinand Rivera Morell
  • New: Make parts of internals thread safe to support parallel built-ins. Currently includes Jam values, hash tables, and filesystem.
    -- René Ferdinand Rivera Morell
  • New: Add import-search project rule to declare additional search paths for import that refer to searched project locations, or other directories.
    -- René Ferdinand Rivera Morell
  • Fix consistent use of OPT_SEMAPHORE and documentation of JAM_SEMAPHORE.
    -- Thomas Brown
  • Fix archive actions failing for mingw.
    -- René Ferdinand Rivera Morell

IMPORTANT: Building B2 with VisualStudio 2013, i.e. MSVC 12, is no longer supported or tested. The effort to engineer workarounds for the missing C++11 features became too much. And was taking away from other improvements.

4.10.1

10 Jul 22:54
Compare
Choose a tag to compare
  • Silence warnings for using standard deprecated functions by Apple clang
    toolset in b2 build.
    -- René Ferdinand Rivera Morell

4.10.0

11 Jun 19:36
Compare
Choose a tag to compare

This release contains many bug fixes but along the way also cleanup and
refactoring of many toolsets, thanks to Nikita.

  • New: Scan assembler files for C Preprocessor includes.
    -- Nikita Kniazev
  • Fix: Inherit generator overrides from a base toolset.
    -- Nikita Kniazev
  • New: Add linemarkers feature that on preprocessing targets changes behavior to
    emit/omit line directives like #line and #<linenum>.
    -- Nikita Kniazev
  • Fix compiler name for QNX.
    -- James Choi
  • Fix openssl name handling.
    -- Dmitry Arkhipov
  • Fix clang-win assembler path deduction.
    -- Nikita Kniazev
  • Fix toolset sub-feature requirements inheritance.
    -- Nikita Kniazev
  • Unify compile and link of clang-linux toolset with gcc toolset.
    -- Nikita Kniazev
  • Fix same directory pch header generation for msvc toolset.
    -- Nikita Kniazev
  • Implement --durations which reports top targets by execution time.
    -- Nikita Kniazev
  • Change clang-darwin to inherit from clang-linux and unify compile commands.
    -- Nikita Kniazev
  • Fix clang-linux to not override RPATH_OPTION.
    -- Nikita Kniazev
  • Fix inadvertently running configuration checks that shouldn't (as reported by
    Alexander Grund). By changing <build>no conditionals evaluation to short
    circuit.
    -- Nikita Kniazev
  • Fix same toolset overrides (inherit-overrides).
    -- Nikita Kniazev
  • New: Add using the C processors for assembly source files.
    -- Nikita Kniazev
  • Many improvements and cleanup of internal testing.
    -- Nikita Kniazev
  • Unify gcc and clang-linux soname option handling and disable it on Windows.
    -- Nikita Kniazev
  • Unity gcc/mingw linking of shared and import libs.
    -- Nikita Kniazev
  • Fix pdb generation ordering and naming issues.
    -- Nikita Kniazev
  • Unify clang-darwin linking with gcc.
    -- Nikita Kniazev
  • Fix mingw/msys/cygwin, winthreads/pthread inconsistencies to correct compiler
    flags.
    -- Nikita Kniazev
  • Unify clang-vxworks by inheriting from clang-linux.
    -- Nikita Kniazev
  • Don't store empty config cache and log.
    -- Nikita Kniazev
  • Fix generator custom rule name inheritance. This affects cygwin/mingw linking.
    -- Nikita Kniazev
  • Fix testing.execute=off to correct run-fail behavior.
    -- Nikita Kniazev
  • Fix use-project with native paths.
    -- René Ferdinand Rivera Morell
  • Fix msvc auto config version priority. Now msvc toolsets are configured in
    correct newest to oldest regardless of being found from the registry or not.
    -- René Ferdinand Rivera Morell
  • New: Add support for automatic searching of external projects for global
    target and project references.
    -- René Ferdinand Rivera Morell

4.9.6

16 Mar 01:17
Compare
Choose a tag to compare
  • Fix version check for winsdk on clang-win toolset.
    -- Nikita Kniazev

4.9.5

11 Mar 18:04
Compare
Choose a tag to compare
  • Improve alternative match error message to include more context.
    -- René Ferdinand Rivera Morell
  • Fix errors when doing use-project inside projects that get included from
    another use-project.
    -- René Ferdinand Rivera Morell
  • Support native msvc compilers on ARM64.
    -- Stephen Just
  • PCH fixes: fix msvc pch include dir; fix msvc pch header name; fix missing
    gcc -ftemplate-depth when building pch.
    -- Nikita Kniazev
  • New: clang-win search for compiler executable in default install locations
    when it is not on found in PATH.
    -- Nikita Kniazev
  • Fix clang-win to support versioned winsdk bin location.
    -- Nikita Kniazev

4.9.4

22 Feb 21:42
Compare
Choose a tag to compare
  • Fix crash on some platforms/compilers from invalid garbage reads of varargs
    end marker being an int instead of a nullptr.
  • Don't force Windows path separators for GCC when on Windows. As it confuses
    Cygwin GCC's relative include path handling.
    -- René Ferdinand Rivera Morell
  • Added common-requirements to project declaration to shorthand as declaring
    the same for both requirements and usage-requirements.
    -- René Ferdinand Rivera Morell
  • Add to pass in targets to project explicit rule to reduce duplication of
    explicit targets when there are many.
    -- René Ferdinand Rivera Morell
  • Make coverage feature non-incidental and link-incompatible.
    -- Thomas Brown
  • Use PATH-based lookup for sh. For things such as Gentoo Prefix, we want to
    use the Bourne shell from the prefix and not the potentially ancient version
    from the main system.
    -- David Seifert