bpt is a new build, test, and packaging tool for native C and C++
libraries and applications, with a focus on simplicity, speed, and
Traditional build tools have been built to cede all control to their users. While this may sound appealing, it leads to rampant ecosystem fragmentation that impedes the ability for us to compose our libraries and tools.
bpt's approach is to trade this flexibility for something sorely lacking
in the C and C++ build and distribution ecosystem: Simplicity.
bpt replace [XYZ] build tool?
bpt is a build tool, it is not meant as a full replacement
for all use cases of other build tools (e.g. CMake and Meson).
For many use cases,
bpt will serve as a possible replacement for more
flexible build systems, especially when the build itself is far simpler
than is warranted by the flexibility offered by those tools.
bpt is built to augment other build tools. The
bpt can be fed into other build and packaging systems.
bpt replace [XYZ] packaging tool?
bpt supports dependency resolution, procurement, and building, much like
many other tools, but has a few important differences of opinion. Refer
to the documentation for more information.
bpt "production ready"?
bpt is still in its alpha stages, is missing
several end-goal features, and will have several breaking changes before
its first "1.0" release.
bpt is ready to be used for experiments, hobby projects, and
in any place that doesn't require stability.
bpt and its source code are available free of charge.
bpt open source?
bpt codebase is licensed under the
Mozilla Public License Version 2.0, although it is built upon
many components variously licensed as MIT, BSD, Boost, and public domain.
bpt is built, tested, distributed, and supported on Windows, macOS,
Linux, and FreeBSD.
The Microsoft Visual C++, GNU GCC, LLVM/Clang, and AppleClang compilers are all supported.
bpt's package procurement is in very early stages, and there is no
centralized repository of packages available for download.
bpt maintains a local catalog database that contain instructions it can
use to obtain packages from the internet. At the moment, this involves
cloning a Git repository, but there are plans to support catalog updates
and source distributions delivered over HTTP(S) in the future. This
includes the ability to host private package repositories.