build2 project dependency manager

This package contains the build2 project dependency manager.

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:

See the NEWS file for the user-visible changes from the previous release.

See the LICENSE file for the distribution conditions.

See... More
version 0.14.0-a.0.20200910150219.3b4430d5fab2
license MIT
fragment 3b4430d5fab2bdde1bd00cdb8df3c5e16583d7c1
project build2
topics package dependency managementbuild toolchain

Depends (4)

libodb [2.5.0-b.20.1 2.5.0-b.21)
libodb-sqlite [2.5.0-b.20.1 2.5.0-b.21)
libbutl [0.14.0-a.0.1 0.14.0-a.1)
libbpkg [0.14.0-a.0.1 0.14.0-a.1)

Requires (2)

? cliOnly required if changing .cli files


toolchain public-0.13.0
config linux_debian_8-gcc_4.9 / x86_64-linux-gnu
timestamp 2020-09-10 15:47:21 UTC (10 21:34:52 days ago)
result success | log | rebuild
config linux_debian_10-gcc_9.3 / x86_64-linux-gnu
result excluded
config linux_debian_10-gcc_10.1 / x86_64-linux-gnu
result excluded
config linux_debian_10-gcc_10.1-O3 / x86_64-linux-gnu
result excluded
config linux_debian_10-gcc_10.1-static_O3 / x86_64-linux-gnu
result excluded
config linux_debian_10-clang_9.0 / x86_64-linux-gnu
result excluded
config linux_debian_10-clang_9.0_libc++ / x86_64-linux-gnu
result excluded
config linux_debian_10-clang_10.0 / x86_64-linux-gnu
result excluded
config linux_debian_10-clang_10.0-O3 / x86_64-linux-gnu
result excluded
config linux_debian_10-clang_10.0-static_O3 / x86_64-linux-gnu
result excluded
config linux_debian_10-clang_10.0_libc++ / x86_64-linux-gnu
result excluded
config linux_debian_10-clang_10.0_libc++-O3 / x86_64-linux-gnu
result excluded
config linux_debian_10-clang_10.0_libc++-static_O3 / x86_64-linux-gnu
result excluded
config macos_10.14-clang_10.0 / x86_64-apple-darwin18.6.0
result excluded
config macos_10.15-clang_11.0 / x86_64-apple-darwin19.0.0
result excluded
config macos_10.15-clang_11.0-O3 / x86_64-apple-darwin19.0.0
result excluded
config macos_10.15-clang_11.0-static_O3 / x86_64-apple-darwin19.0.0
result excluded
config macos_10.15-gcc_9.3_homebrew / x86_64-apple-darwin19.0.0
result excluded
config macos_10.15-gcc_9.3_homebrew-O3 / x86_64-apple-darwin19.0.0
result excluded
config macos_10.15-gcc_9.3_homebrew-static_O3 / x86_64-apple-darwin19.0.0
result excluded
config freebsd_12-clang_6.0 / x86_64-freebsd12.0
result excluded
config freebsd_12-clang_8.0 / x86_64-freebsd12.1
result excluded
config freebsd_12-clang_8.0-O3 / x86_64-freebsd12.1
result excluded
config freebsd_12-clang_8.0-static_O3 / x86_64-freebsd12.1
result excluded
config windows_10-gcc_9.2_mingw_w64 / x86_64-w64-mingw32
result excluded
config windows_10-gcc_9.2_mingw_w64-O3 / x86_64-w64-mingw32
result excluded
config windows_10-gcc_9.2_mingw_w64-static_O3 / x86_64-w64-mingw32
result excluded
config windows_10_devmode-msvc_16.4 / x86_64-microsoft-win32-msvc14.2
result excluded
config windows_10-msvc_16.5 / x86_64-microsoft-win32-msvc14.2
result excluded
config windows_10-msvc_16.6 / x86_64-microsoft-win32-msvc14.2
result excluded
config windows_10-msvc_16.6-O2 / x86_64-microsoft-win32-msvc14.2
result excluded
config windows_10-msvc_16.6-static_O2 / x86_64-microsoft-win32-msvc14.2
result excluded
config windows_10-clang_9.0_llvm_msvc_16.4 / x86_64-microsoft-win32-msvc14.2
result excluded
config windows_10-clang_10.0_msvc_msvc_16.6 / x86_64-microsoft-win32-msvc14.2
result excluded
config windows_10-clang_10.0_llvm_msvc_16.6 / x86_64-microsoft-win32-msvc14.2
result excluded
config windows_10-clang_10.0_llvm_msvc_16.6-O2 / x86_64-microsoft-win32-msvc14.2
result excluded
config windows_10-clang_10.0_llvm_msvc_16.6-static_O2 / x86_64-microsoft-win32-msvc14.2
result excluded
config windows_10-clang_10.0_llvm_msvc_16.6_lld / x86_64-microsoft-win32-msvc14.2
result excluded


Version 0.13.0

  * The SPDX License Expression in now the default scheme in the bdep-new
    --type|-t,license sub-option.

    Auto-detected licenses now also result in the SPDX License ID in the
    'license' package manifest value.

  * New source layout customization mechanisms in bdep-new.

    In particular, the split include/src layout is now supported out of the

    $ bdep new -l c++ -t lib,split libhello

    See the SOURCE LAYOUT section in bdep-new(1) for details and a large
    number of examples.

  * The bdep-new command in the --package mode now creates the "glue
    buildfile" for the project.

  * The bdep-new command now generates the .gitattributes file with sensible

  * The bdep-new --subdirectory mode option has been renamed to --source.

    The corresponding default options file has also been renamed to

  * The bdep-new binless sub-option has been moved from --lang|-l to --type|t.

Version 0.12.0

  * Support for creating new projects with existing files.

    The bdep-new command now also recognizes and handles the following
    existing filesystem entries in the project root:

      .git      -- assume VCS is already initialized and is Git
      LICENSE   -- try to guess the manifest license from contents -- try to extract the manifest summary line from contents

    Overall, the idea is to streamline the workflow where one creates a
    project on one of the hosting services (GitHub, GitLab, etc) and then
    initializes it with bdep-new.

    Also, to this effect, specifying the project name is now optional and if
    omitted, the current working directory (or --output-dir, if specified) is
    assumed to be the project name.

    An example of this streamlined workflow:

    $ # create project with LICENSE and on a Git hosting service
    $ git clone .../libhello.git
    $ cd libhello
    $ bdep new -t lib

    Finally, with this change it now makes sense to have support for pre-
    creation hooks (--pre-hook) in addition to post-creation (--post-hook).

  * Support for default options files (aka tool config files).

    See the bdep-default-options-files(1) help topic for background and the
    DEFAULT OPTIONS FILES section in each command's man pages for specifics.

  * New bdep-new no-install project type sub-option.

    In particular, this should be useful when creating *-tests packages.

  * The C library projects created by bdep-new are now portable.

    Specifically, the use of fmemopen() was replaced with tmpfile().

  * The pre and post-creation hooks now make use of portable builtins.

    To instead use a system-provided program, prefix the name with `^`, for

    $ bdep new --post-hook "^cat --squeeze-blank .../.gitignore >>.gitignore"

    See bdep-new(1) for details.

  * Ability to specify <pkg-args> in the bdep-init command's -A and -C forms.

  * Ability to keep/update/remove the current tag in the bdep-release
    command's revision mode.

    Note also that previously the default was to update while now it is to

  * Ability to have multiple forwarded configurations.

    The new constraint is that such configurations should not have any common
    packages (a package's source directory cannot be forwarded to multiple

  * New bdep-submit --forward option.

    This option instructs bdep-submit to use each package's forwarded
    configuration in order to prepare the distributions. This helps with
    setups where there is no single configuration that has all the packages
    (such as a build system module project).

  * New bdep-init --no-sync option.

    This allows postponing initialization in the build configurations to a
    later explicit bdep-sync. One subtle difference with such an explicit sync
    is that it will be performed without having the project's database open,
    which can be important if the initialization triggers an implicit sync
    (via a hook) of a project that uses the same database (as is the case with
    build system module projects).

Version 0.11.0

  * The bdep-new command now by default adds a template. This can be
    suppressed with the new no-readme project type sub-option. For example:

    $ bdep new -t exe,no-readme hello

  * New license=<name> bdep-new project type sub-option allows specifying a
    project license. For example:

    $ bdep new -t exe,license=MIT hello

    Commonly used license names are 'MIT', 'ASLv2' (Apache License 2.0),
    'GPLv3', and 'proprietary' (see the 'license' package manifest value
    documentation for a more extensive list of names). Note that if the
    license is not specified, the default is now 'proprietary' instead of

  * New bdep-new --post-hook option allows the execution of customization
    commands in the newly created project. For example:

    $ bdep new --post-hook "echo .idea/ >>.gitignore" hello

    See the bdep-new(1) man... More