bpt - The Build and Package Tool
bpt
The build and package tool
What is bpt?
bpt is a new build, test, and packaging tool for native C and C++ libraries and applications, with a focus on simplicity, speed, and integratability.
What makes bpt different?
Convention over configuration.

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.
Does bpt replace [XYZ] build tool?
While 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.

Additionally, bpt is built to augment other build tools. The output from bpt can be fed into other build and packaging systems.
Does bpt replace [XYZ] packaging tool?
Yes and no.

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.
Is bpt "production ready"?
At the time of writing, 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.

Even then, bpt is ready to be used for experiments, hobby projects, and in any place that doesn't require stability.
Is bpt free?
Yes! bpt and its source code are available free of charge.
Is bpt open source?
Yes!

The main 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.
What platforms are supported?
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.
Is bpt centralized?
No / "not yet"

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.