Skip to content
bob-hqPublic

About

The ergonomic Ninja-based build system.

Resources

Stars

6 stars

Watchers

0 watching

Forks

Repository files navigation


Bob the Builder
License MIT PRs Welcome PyPI Version Workflow Status Ruff

The ergonomic Ninja-based build system.

🏃 Getting Started  ·  ⌨️ CLI  ·  🎯 Goals  ·  🙏 Acknowledgements

Getting Started

uv tool install --upgrade bob-build --with bobstd
# Optionally set up shell completions for Bob (currently supported for fish).
bob completions

See the tour and specifically its root Bobfile for a demo of building with Bob!

CLI

# 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 with the given configs.
bob compdb -c DEBUG=n
# Create a compile_commands.json only including `build/.subbob-2-src/basic` and its dependencies.
bob compdb build/.subbob-2-src/basic

Try these out in the tour!

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

About

The ergonomic Ninja-based build system.

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages