Build system in D, Python, Ruby, Javascript or Lua
A (meta) build system with multiple front (D, Python, Ruby, Javascript, Lua) and backends (make, ninja, tup, custom). This is alpha software, only tested on Linux and likely to have breaking changes made.
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 (****************.
From the the build directory, runreggae -b / path / to / your / project. You can now build your project using the appropriate command (ninja, make, tup, or ./build respectively).
**************************************************** (Quick Start)
The API is documentedelsewhereand the best examples can be found in the
fromreggae (import*app=executable ( name=
GIPHY App Key not set. Please check settings