Button: A fast, correct, and elegantly simple build system.

Atila Neves via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Tue May 31 03:15:14 PDT 2016


On Monday, 30 May 2016 at 19:16:50 UTC, Jason White wrote:
> I am pleased to finally announce the build system I've been 
> slowly working on for over a year in my spare time:
>
> snip
> In fact, there is some experimental support for automatic 
> conversion of Makefiles to Button's build description format 
> using a fork of GNU Make itself: 
> https://github.com/jasonwhite/button-make

I'm going to take a look at that!

> - I am aware of Reggae, another build system written in D. 
> Although, I admit I haven't looked at it very closely. I am 
> curious how it compares.

Since I wrote reggae, let me compare ;)

> - Correct incremental builds.

Yep.

> - Automatic dependency detection (for any build task, even 
> shell scripts).

Yes for C/C++/D, no for random tasks in general, but yes if you 
use the tup backend.

> - Build graph visualization using GraphViz.

Use the ninja backend, get it for free.

> - Language-independent. It can build anything.

So can reggae, but the built-in high-level rules only do C/C++/D 
right now.

> - Can automatically build when an input file is modified (using 
> inotify).

Nope, I never found that interesting. Possibly because I keep 
saving after every edit in OCD style and I really don't want 
things running automatically.

> - Recursive: It can build the build description as part of the 
> build.

I'm not sure what that means. reggae copies CMake here and runs 
itself when the build description changes, if that's what you 
mean.

> - Lua is the primary build description language.

In reggae you can pick from D, Python, Ruby, Javascript and Lua.

Atila



More information about the Digitalmars-d-announce mailing list