The ergonomic Ninja-based build system.
Project description
Bob the Builder
The ergonomic Ninja-based build system.
🏃 Getting Started · ⌨️ CLI · 🎯 Goals · 🙏 Acknowledgements
Getting Started
uv tool install --upgrade bob-build --with bobstd
See the tour!
CLI
You can try these out in the tour as well.
# Build the project in the current directory (you should have a Bobfile).
bob build
# Clean the outputs of Bob.
bob clean
# Build with a specific config.
bob build -c DEBUG=n
# Build with a specific config in a separate build directory, so both consecutive builds are blazingly fast.
bob build -c DEBUG=y --builddir build-debug
# More options, including options passed to Ninja (after --).
bob build --clean -j 4 -- -v
# Create a compile_commands.json.
bob compdb -c DEBUG=n
Goals
Sorted by priority:
- Writing Bobfiles, writing plugins and rules, and composing Bobfiles should all be easy and feel Pythonic.
- Type safety should allow for a smooth editing experience and easy-to-debug errors.
- Plugins should be close to the actual commands rather than lock you in to a specific paradigm.
- Speed should be fast.
Acknowledgements
- Bake
- Kbuild
- Ninja's configure.py
- Thanks to everyone who helped design Bob, in particular Noam Raz.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
bob_build-0.1.3.tar.gz
(18.4 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
bob_build-0.1.3-py3-none-any.whl
(27.2 kB
view details)
File details
Details for the file bob_build-0.1.3.tar.gz.
File metadata
- Download URL: bob_build-0.1.3.tar.gz
- Upload date:
- Size: 18.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.27 {"installer":{"name":"uv","version":"0.11.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a8ed9c417421889e347be6f1bf90676d98ff8cb535e3e10fb94ec246ab95966
|
|
| MD5 |
3a682c83c81521f09d43c5c0bdab1477
|
|
| BLAKE2b-256 |
78835e66254424e0ce71a9f5b06a7ed9383f4f595e32203efc16222a0740982c
|
File details
Details for the file bob_build-0.1.3-py3-none-any.whl.
File metadata
- Download URL: bob_build-0.1.3-py3-none-any.whl
- Upload date:
- Size: 27.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.27 {"installer":{"name":"uv","version":"0.11.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b05fc19f9a2f2397d7d55e15f2df156ea7db95e8023c6ff704079dcdf8c6020c
|
|
| MD5 |
c830ae7468bf1f3e17de26aa77231218
|
|
| BLAKE2b-256 |
a5b25e853d7f75662d0ce2878337c40969d62b0dc410fb6eef551fe4811dc35d
|