reggae v0.10.0 - The meta build system just got better

Atila Neves atila.neves at gmail.com
Wed Sep 20 21:19:22 UTC 2023


On Wednesday, 20 September 2023 at 15:24:52 UTC, Andrey Zherikov 
wrote:
> On Thursday, 7 September 2023 at 17:34:48 UTC, Atila Neves 
> wrote:
>> https://code.dlang.org/packages/reggae
>>
>> For those who don't know, reggae is a meta-build system for 
>> and in D. It's like CMake, if you replace their terrible 
>> language with D*. Like CMake, it can output make and ninja 
>> files. Unlike CMake, it can also output tup files and has its 
>> own binary generator in case the dependency on one of those 
>> programs is undesired. Also unlike CMake, it supports dub 
>> projects out-of-the-box by using dub as a library.
>
> Out of curiosity, why do we need one more build tool?

Because we don't have one now. Using CMake for D is horrible, and 
none of the alternatives are that much better. Hand-written 
Makefiles are a nightmare and will never get dependencies right. 
dub isn't a build system, although it includes a very limited one 
that can't be extended. Want to build D and C++ code in the same 
project? Hah, good luck.

> TBH I had the same thought - we should have "good" build tool 
> for D that has D as a language. Since I have some experience 
> with CMake and agree with a lot of people that it have horrible 
> language, I thought it would be beneficial. But then I looked 
> round and realized that it will be like this:

In practice, this doesn't seem to happen with build systems. 
Instead each language ecosystem ends up using its own: CMake, 
Gradle, Rake, ...

> Have you looked as Meson, for example - it even has a [section 
> about D](https://mesonbuild.com/D.html)?

Yes, and even had to use it for D. I don't know what state it's 
in now, but it was pretty much unusable if one had dub 
dependencies which... is nearly always the case.

Then there's the language: I'd rather use D or Python. If 
anything, Meson's use case could be questioned just as well by 
"why another build language?".




More information about the Digitalmars-d-announce mailing list