Detailed API documentation can be foundhere.
Do we really need another build system? Yes.
On the frontend side, take CMake. CMake is pretty awesome. CMake’s language, on the other hand, is awful. Many other build systems use their own proprietary languages that you have to learn to be able to use them. I think that using a good tried-and-true general purpose programming language is better, with an API that is declarative as much as possible.
On the backend, it irks me that wanting to use tup means tying myself to it. Wouldn’t it be nice to describe the build in my language of choice and be able to choose between tup and ninja as an afterthought?
I also wanted something that makes it easy to integrate different languages together. Mixing D and C / C is usually a bit painful, for instance. In the future it may include support for other statically compiled languages. PRs welcome!
reggae is really a flexible DAG describing API that happens to good at building software.
option generates a build system that works in the root of your project without having to install reggae on the target system
In one of the scripting languages, a global variable with the type reggae.Build must exist with any name. Also, the relevant language-specific package can be installed using pip, gem, npm or luarocks to install the reggae package (reggae-js for npm). This is not required; the reggae binary includes the API for all scripting languages.
In D, a function with return typeBuildmust exist with any name. Normally this function isn’t written by hand but by using thebuild template mixin (****************.
fromreggae (import*app=executable ( name=