build2/0.14.0

[full]

build2 build system

This package contains the build2 build system.

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:

https://build2.org/

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

See the LICENSE file for the distribution conditions.

See the INSTALL file... More
version 0.14.0
license MIT
repository https://pkg.cppget.org/1/alpha
download build2-0.14.0.tar.gz
sha256 fe95a3ebc26606d84e276093407a3d5b0dcc0afe3104ec344aeb09a4c7d7e58f
project build2
url build2.org
doc-url build2.org/doc.xhtml
src-url git.build2.org/cgit/build2/tree/
topics build systembuild toolchain

Depends (2)

libbutl ^0.14.0
libpkgconf [1.4.2 1.7.0-)

Requires (2)

c++14
? cliOnly required if changing .cli files

Builds

toolchain public-0.14.0
config windows_10-msvc_16.11-static_O2 / x86_64-microsoft-win32-msvc14.2
timestamp 2022-01-26 23:15:54 UTC (01 12:44:17 days ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-msvc_16.11-O2 / x86_64-microsoft-win32-msvc14.2
timestamp 2022-01-26 23:11:34 UTC (01 12:48:36 days ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-msvc_16.11 / x86_64-microsoft-win32-msvc14.2
timestamp 2022-01-26 23:08:58 UTC (01 12:51:13 days ago)
result success | log | rebuild
toolchain public-0.14.0
config macos_11-gcc_11.2_homebrew-O3 / x86_64-apple-darwin20.5.0
timestamp 2022-01-26 13:58:43 UTC (01 22:01:28 days ago)
result success | log | rebuild
toolchain public-0.14.0
config macos_11-gcc_11.2_homebrew-static_O3 / x86_64-apple-darwin20.5.0
timestamp 2022-01-26 13:56:57 UTC (01 22:03:14 days ago)
result success | log | rebuild
toolchain public-0.14.0
config macos_11-gcc_11.2_homebrew / x86_64-apple-darwin20.5.0
timestamp 2022-01-26 13:56:40 UTC (01 22:03:31 days ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-clang_13.0_llvm_msvc_16.11-static_O2 / x86_64-microsoft-win32-msvc14.2
timestamp 2022-01-26 13:42:18 UTC (01 22:17:53 days ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-clang_13.0_llvm_msvc_16.11-O2 / x86_64-microsoft-win32-msvc14.2
timestamp 2022-01-26 13:40:29 UTC (01 22:19:42 days ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-clang_13.0_llvm_msvc_16.11_lld / x86_64-microsoft-win32-msvc14.2
timestamp 2022-01-26 13:40:14 UTC (01 22:19:57 days ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-clang_13.0_llvm_msvc_16.11 / x86_64-microsoft-win32-msvc14.2
timestamp 2022-01-26 13:39:16 UTC (01 22:20:55 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_11-clang_13.0_libc++ / x86_64-linux-gnu
timestamp 2022-01-26 13:31:17 UTC (01 22:28:54 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_11-clang_13.0_libc++-static_O3 / x86_64-linux-gnu
timestamp 2022-01-26 13:30:38 UTC (01 22:29:33 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_11-clang_13.0_libc++-O3 / x86_64-linux-gnu
timestamp 2022-01-26 13:30:26 UTC (01 22:29:45 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_11-clang_13.0-static_O3 / x86_64-linux-gnu
timestamp 2022-01-26 13:30:01 UTC (01 22:30:09 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_11-clang_13.0-O3 / x86_64-linux-gnu
timestamp 2022-01-26 13:29:52 UTC (01 22:30:18 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_11-clang_13.0 / x86_64-linux-gnu
timestamp 2022-01-26 13:29:16 UTC (01 22:30:54 days ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-msvc_16.11-charset / x86_64-microsoft-win32-msvc14.2
timestamp 2022-01-26 13:14:35 UTC (01 22:45:36 days ago)
result success | log | rebuild
toolchain public-0.14.0
config macos_11-clang_13.0-O3 / x86_64-apple-darwin20.5.0
timestamp 2022-01-26 13:13:46 UTC (01 22:46:25 days ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-gcc_10.2_mingw_w64-O2 / x86_64-w64-mingw32
timestamp 2022-01-26 13:12:42 UTC (01 22:47:29 days ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-gcc_10.2_mingw_w64 / x86_64-w64-mingw32
timestamp 2022-01-26 13:11:50 UTC (01 22:48:21 days ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-gcc_10.2_mingw_w64-static_O2 / x86_64-w64-mingw32
timestamp 2022-01-26 13:09:33 UTC (01 22:50:38 days ago)
result success | log | rebuild
toolchain public-0.14.0
config macos_11-clang_13.0-static_O3 / x86_64-apple-darwin20.5.0
timestamp 2022-01-26 13:08:29 UTC (01 22:51:41 days ago)
result success | log | rebuild
toolchain public-0.14.0
config macos_11-clang_13.0 / x86_64-apple-darwin20.5.0
timestamp 2022-01-26 13:05:16 UTC (01 22:54:55 days ago)
result success | log | rebuild
toolchain public-0.14.0
config macos_11-clang_12.0 / x86_64-apple-darwin20.5.0
timestamp 2022-01-26 13:04:10 UTC (01 22:56:01 days ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10_devmode-msvc_16.11 / x86_64-microsoft-win32-msvc14.2
timestamp 2022-01-26 12:10:56 UTC (01 23:49:15 days ago)
result success | log | rebuild
toolchain public-0.14.0
config freebsd_13-clang_11.0-O3 / x86_64-freebsd13.0
timestamp 2022-01-26 12:08:34 UTC (01 23:51:37 days ago)
result success | log | rebuild
toolchain public-0.14.0
config freebsd_13-clang_11.0-static_O3 / x86_64-freebsd13.0
timestamp 2022-01-26 12:07:38 UTC (01 23:52:32 days ago)
result success | log | rebuild
toolchain public-0.14.0
config freebsd_13-clang_11.0 / x86_64-freebsd13.0
timestamp 2022-01-26 12:06:57 UTC (01 23:53:14 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-gcc_11.2-static_O3 / x86_64-linux-gnu
timestamp 2022-01-26 12:04:52 UTC (01 23:55:18 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-gcc_11.2-O3 / x86_64-linux-gnu
timestamp 2022-01-26 12:03:36 UTC (01 23:56:35 days ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-clang_12.0_msvc_msvc_16.11 / x86_64-microsoft-win32-msvc14.2
timestamp 2022-01-26 12:03:07 UTC (01 23:57:04 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-gcc_11.2 / x86_64-linux-gnu
timestamp 2022-01-26 12:02:28 UTC (01 23:57:43 days ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-msvc_16.9 / x86_64-microsoft-win32-msvc14.2
timestamp 2022-01-26 11:54:59 UTC (02 00:05:12 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-clang_12.0 / x86_64-linux-gnu
timestamp 2022-01-26 11:53:41 UTC (02 00:06:30 days ago)
result success | log | rebuild
toolchain public-0.14.0
config freebsd_12-clang_10.0 / x86_64-freebsd12.2
timestamp 2022-01-26 11:52:43 UTC (02 00:07:27 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-clang_12.0_libc++ / x86_64-linux-gnu
timestamp 2022-01-26 11:52:23 UTC (02 00:07:48 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-gcc_10.2 / x86_64-linux-gnu
timestamp 2022-01-26 11:50:17 UTC (02 00:09:54 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-clang_9.0_libc++ / x86_64-linux-gnu
timestamp 2022-01-26 11:38:56 UTC (02 00:21:15 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-clang_11.0_libc++ / x86_64-linux-gnu
timestamp 2022-01-26 11:38:43 UTC (02 00:21:28 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-clang_9.0 / x86_64-linux-gnu
timestamp 2022-01-26 11:38:18 UTC (02 00:21:52 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-clang_10.0_libc++ / x86_64-linux-gnu
timestamp 2022-01-26 11:38:14 UTC (02 00:21:56 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-clang_11.0 / x86_64-linux-gnu
timestamp 2022-01-26 11:38:04 UTC (02 00:22:07 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-clang_10.0 / x86_64-linux-gnu
timestamp 2022-01-26 11:37:36 UTC (02 00:22:35 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_9-clang_8.0_libc++ / x86_64-linux-gnu
timestamp 2022-01-26 11:37:23 UTC (02 00:22:48 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_9-clang_7.0 / x86_64-linux-gnu
timestamp 2022-01-26 11:37:03 UTC (02 00:23:08 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_9-clang_8.0 / x86_64-linux-gnu
timestamp 2022-01-26 11:36:46 UTC (02 00:23:25 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_9-clang_6.0 / x86_64-linux-gnu
timestamp 2022-01-26 11:36:05 UTC (02 00:24:05 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_ubuntu_16.04-clang_3.7_libc++ / x86_64-linux-gnu
timestamp 2022-01-26 11:34:27 UTC (02 00:25:44 days ago)
result success | log | rebuild
toolchain public-0.14.0
config freebsd_11-clang_10.0 / x86_64-freebsd11.4
timestamp 2022-01-26 11:31:33 UTC (02 00:28:38 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_9-gcc_7.4 / x86_64-linux-gnu
timestamp 2022-01-26 11:30:32 UTC (02 00:29:39 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-gcc_9.3 / x86_64-linux-gnu
timestamp 2022-01-26 11:27:23 UTC (02 00:32:48 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_9-gcc_8.4 / x86_64-linux-gnu
timestamp 2022-01-26 11:25:14 UTC (02 00:34:57 days ago)
result success | log | rebuild
toolchain public-0.14.0
config windows_10-msvc_14.3 / x86_64-microsoft-win32-msvc14.0
timestamp 2022-01-26 11:23:29 UTC (02 00:36:42 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_8-gcc_4.9 / x86_64-linux-gnu
timestamp 2022-01-26 11:13:18 UTC (02 00:46:53 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-gcc_11.2-ndebug_O3 / x86_64-linux-gnu
timestamp 2022-01-26 10:29:57 UTC (02 01:30:14 days ago)
result warning (update) | error (test) | log | rebuild
toolchain public-0.14.0
config windows_10-msvc_15.9 / x86_64-microsoft-win32-msvc14.1
timestamp 2022-01-26 10:18:51 UTC (02 01:41:19 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_9-clang_7.0_libc++ / x86_64-linux-gnu
timestamp 2022-01-26 10:09:45 UTC (02 01:50:26 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_9-clang_6.0_libc++ / x86_64-linux-gnu
timestamp 2022-01-26 10:07:26 UTC (02 01:52:45 days ago)
result success | log | rebuild
toolchain public-0.14.0
config linux_debian_10-gcc_11.2-charset / x86_64-linux-gnu
timestamp 2022-01-25 12:17:07 UTC (02 23:43:04 days ago)
result success | log | rebuild

Changes

Version 0.14.0

  * Support for hermetic build configurations.

    Hermetic build configurations save environment variables that affect the
    project along with other project configuration in the config.build file.
    These saved environment variables are then used instead of the current
    environment when performing operations on the project, thus making sure
    the project "sees" exactly the same environment as during configuration.
    The built-in ~host and ~build2 configurations are now hermetic.

    Hermetic configuration support is built on top of the lower-level
    config.config.environment configuration variable which allows us to save a
    custom set of environment variables/values.

    As part of this work we now also track changes to the environment in non-
    hermetic configurations and automatically rebuild affected targets.

    See "Hermetic Build Configurations" in the manual for details.

  * Support for ad hoc regex pattern rules.

    An ad hoc pattern rule consists of a pattern that mimics a dependency
    declaration followed by one or more recipes. For example:

    exe{~'/(.*)/'}: cxx{~'/\1/'}
    {{
      $cxx.path -o $path($>) $path($<[0])
    }}

    If a pattern matches a dependency declaration of a target, then the recipe
    is used to perform the corresponding operation on this target. For
    example, the following dependency declaration matches the above pattern
    which means the rule's recipe will be used to update this target:

    exe{hello}: cxx{hello}

    While the following declarations do not match the above pattern:

    exe{hello}:   c{hello}  # Type mismatch.
    exe{hello}: cxx{howdy}  # Name mismatch.

    On the left hand side of `:` in the pattern we can have a single target or
    an ad hoc target group. The single target or the first (primary) ad hoc
    group member must be a regex pattern (~). The rest of the ad hoc group
    members can be patterns or substitutions (^). For example:

    <exe{~'/(.*)/'} file{^'/\1.map/'}>: cxx{~'/\1/'}
    {{
      $cxx.path -o $path($>[0]) "-Wl,-Map=$path($>[1])" $path($<[0])
    }}

    On the right hand side of `:` in the pattern we have prerequisites which
    can be patterns, substitutions, or non-patterns. For example:

    <exe{~'/(.*)/'} file{^'/\1.map/'}>: cxx{~'/\1/'} hxx{^'/\1/'} hxx{common}
    {{
      $cxx.path -o $path($>[0]) "-Wl,-Map=$path($>[1])" $path($<[0])
    }}

    Substitutions on the left hand side of `:` and substitutions and non-
    patterns on the right hand side are added to the dependency declaration.
    For example, given the above rule and dependency declaration, the
    effective dependency is going to be:

    <exe{hello} file{hello.map>: cxx{hello} hxx{hello} hxx{common}

    Similar to ad hoc recipes, ad hoc rules can be written in Buildscript or
    C++.

  * Support for regex patterns in target type/pattern-specific variables.

    This is in addition to the already supported path patterns. For example:

    hxx{*}:     x = y  # path pattern
    hxx{~/.*/}: x = y  # regex pattern

  * New pre-defined semantics for the config.<project>.develop variable.

    This variable allows a project to distinguish between development and
    consumption builds. While normally there is no distinction, sometimes a
    project may need to provide additional functionality during development.
    For example, a source code generator which uses its own generated code in
    its implementation may need to provide a bootstrap step from the pre-
    generated code. Normally, such a step is only needed during development.

    If used, this variable should be explicitly defined by the project with
    the bool type and the false default value. For example:

    config [bool] config.hello.develop ?= false

    See "Project Configuration" in the manual for details.

  * Support for warning suppression from external C/C++ libraries.

    This is implemented by defining a notion of a project's internal scope and
    automatically translating header search path options (-I) exported by
    libraries that are outside of the internal scope to appropriate "external
    header search path" options (-isystem for GCC/Clang, /external:I for MSVC
    16.10 and later). In the future this functionality will be extended to
    side-building BMIs for external module interfaces and header units.

    Note that this functionality is not without limitations and drawbacks and,
    if needed, should be enabled explicitly. See the "Compilation Internal
    Scope" section in the manual for details.

  * C++20 modules support in GCC 11 using the module mapper.

    This support covers all the major C++20 modules features including 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... More