Skip to content
/ beaver Public

Simple, reliable and capable build system and command runner for any project

License

Notifications You must be signed in to change notification settings

Jomy10/beaver

Repository files navigation

Beaver

Simple but capable build system and command runner for any project.

Projects can be built programmatically because configuration is written in Ruby.

It is an excellent replacement for make and cmake.

Example

Project("Game")

C::Library(
  name: "Physics",
  description: "Physics simulation library",
  language: :cpp,
  sources: "lib/physics/*.cpp",
  include: "include/physics"
)

C::Library(
  name: "Renderer",
  language: :c,
  sources: "lib/renderer/*.c",
  include: "include/renderer",
  dependencies: [
    pkgconfig("SDL2"),
    system("pthread")
  ]
)

C::Executable(
  name: "Game",
  language: :cpp,
  sources: "src/*.cpp",
  dependencies: ["Physics", "Renderer"]
)

Building

This project uses a simple ruby script build.rb, which forms a layer on top of the swift build system.

For information on building this project, see BUILDING.md.

Installing

After configuring which ruby version to use as outlined in Building, run ruby build.rb install release.

Documentation

Coming soon

Contributing

Feel free to open an issue regarding bugs or improvements. If you want to work on an improvement, you can do so by commenting on its issue and opening a pull request. Your help is much appreciated!

Running tests

Be sure to check your changes with tests. Add new ones if your change is not coverd by the current tests.

ruby build.rb test

Questions

Feel free to ask any questions you may have by opening an issue.

FAQ

Why choose Beaver over make? This project started as a more readable make replacement. I was getting frustrated by unreadable build tools. Beaver comes with all the features you'd expect from a make replacement.
Why choose Beaver over cmake? Beaver takes an approach to project management that does not abstract away all knowledge of the clang/gcc compilers. It's easier to use and understand what's going on.
Why Ruby? I picked ruby as I find it an excellent choice for build scripts. It comes wth a rich standard library for working with files and has a magical syntax.

License

This software is licensed under the MIT license.