B2 makes it easy to build C++ projects, everywhere.
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.
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
import-search
failing to find imports on Windows bacause of incorrect
native vs. non-native path handling.
-- René Ferdinand Rivera Morell
target-os=xyz
.
-- René Ferdinand Rivera Morell
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.
class
, errors
, modules
, regex
, set
, string
, and sysinfo
to C++.
-- René Ferdinand Rivera Morell
bootstrap.jam
to C++ and instead use build-system.jam
as key file to find build files.
-- René Ferdinand Rivera Morell
require-b2
builtin rule to verify the B2 version a particular Jam file needs.
-- René Ferdinand Rivera Morell
regex.grep
builtin that does parallel (where available) file content search with regex matching.
-- René Ferdinand Rivera Morell
import-search
project rule to declare additional search paths for import
that refer to searched project locations, or other directories.
-- René Ferdinand Rivera Morell
OPT_SEMAPHORE
and documentation of JAM_SEMAPHORE
.
-- Thomas Brown
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.
This release contains many bug fixes but along the way also cleanup and refactoring of many toolsets, thanks to Nikita.
#line
and #<linenum>
.
-- Nikita Kniazev
--durations
which reports top targets by execution time.
-- Nikita Kniazev
<build>no
conditionals evaluation to short
circuit.
-- Nikita Kniazev
clang-win
toolset.
-- Nikita Kniazev
use-project
inside projects that get included from
another use-project
.
-- René Ferdinand Rivera Morell
-ftemplate-depth
when building pch.
-- Nikita Kniazev
clang-win
search for compiler executable in default install locations
when it is not on found in PATH
.
-- Nikita Kniazev
clang-win
to support versioned winsdk bin location.
-- Nikita Kniazev
int
instead of a nullptr
.common-requirements
to project declaration to shorthand as declaring
the same for both requirements
and usage-requirements
.
-- René Ferdinand Rivera Morell
explicit
rule to reduce duplication of
explicit
targets when there are many.
-- René Ferdinand Rivera Morell
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