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.
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"]
)
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.
After configuring which ruby version to use as outlined in Building,
run ruby build.rb install release
.
Coming soon
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!
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
Feel free to ask any questions you may have by opening an issue.
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.This software is licensed under the MIT license.