Skip to content

Jomy10/beaver

Repository files navigation

Beaver

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. Beaver also integrates with other build systems so you can have dependencies that use other build systems.

Example

Project(name: "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_lib("pthread")
  ]
)

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

Building

Building requires ruby to be installed. The ruby version linked to will be the one that is accessible from the command line ruby --version.

cargo build -p beaver-cli

Installing

from source

cargo +nightly install --git https://github.com/jomy10/beaver

Documentation

You can view the examples and there is basic documentation in the docs directory.

More extensive documentation is coming soon when the project is more stable.

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.

cargo test

Questions

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

License

This software is licensed under the MIT license.

References

About

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

Topics

Resources

License

Stars

Watchers

Forks

Languages