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.bpt
different?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.Additionally,
bpt
is built to augment other build tools. The
output from 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.Even then,
bpt
is ready to be used for experiments, hobby projects, and
in any place that doesn't require stability.bpt
free?bpt
and its source code are available free of charge.bpt
open source?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.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
centralized?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.