reggae v0.5.0: new features in the D meta-build system
Atila Neves via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Wed Sep 16 07:07:15 PDT 2015
http://code.dlang.org/my_packages/reggae
What's new:
. API changes: main high-level rules are now called objectFiles,
link, and scriptlike
. Optional top-level targets: aren't built by default but can be
built on request
. Phony targets
. staticLibrary rule that does what it says
. unityBuild rule for C/C++ projects that builds a binary as one
translation unit to speed up compilation
. Support for writing build descriptions in Python, Ruby, Lua and
JavaScript
That last one might cause scratchy head syndrome. Why would I
want to enable writing builds in a language other than D? Here's
why:
1. Interpreting a build description is faster than compiling,
linking and running it. Not a big deal since the build
description isn't read often, but it's true
2. No confusion about when to use `enum` and when to use `alias`.
Again, probably wasn't catching anybody unawares but also true
3. Not having to install a D compiler in order to generate builds
- I ran into this issue at work the other day trying to use
reggae on a weird VM with no root access
4. More importantly... to not limit reggae to only D developers
There are quite a few build systems / tools out there in which
different languages are used. Almost all of them are only used by
developers of their language niche: Ruby/Rake, Python/SCons/Waf,
Groovy/Java/Gradle, Haskell/Shake, etc. This is my attempt to
make reggae appeal to a wider audience.
I wanted to add a Lisp too but then I'd have to pick a dialect
and an implemetation, only to annoy fans of other dialects. I
might just do Emacs Lisp to annoy everyone equally! Also, for the
lulz.
Atila
More information about the Digitalmars-d-announce
mailing list