On 31/05/2016 7:16 AM, 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: > > Docs: > Source: > > Features: > > - Correct incremental builds. > - Automatic dependency detection (for any build task, even shell scripts). > - Build graph visualization using GraphViz. > - Language-independent. It can build anything. > - Can automatically build when an input file is modified (using inotify). > - Recursive: It can build the build description as part of the build. > - Lua is the primary build description language. > > A ton of design work went into this. Over the past few years, I went > through many different designs and architectures. I finally settled on > this one about a year ago and then went to work on implementing it. I am > very happy with how it turned out. > > Note that this is still a ways off from being production-ready. It needs > some polishing. Feedback would be most appreciated (file some issues!). > I really want to make this one of the best build systems out there. > > Here is an example build description for DMD: > > https:// github.com/ jasonwhite/ dmd/blob/ button/ src/BUILD.lua > > I'd say that's a lot easier to read than this crusty thing: > > https:// github.com/ dlang/dmd/ blob/master/ src/posix.mak > > 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: > > Finally, a few notes: > > - I was hoping to give a talk on this at DConf, but sadly my submission > was turned down. :'( > > - 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. > > - You might also be interested in the two other libraries I wrote > specifically for this project: > > - > - I am pleased to finally announce the build system I've been slowlyworking on for over a year in my spare time:Docs: http:// jasonwhite. github.io/ button/ Source: https:// github.com/ jasonwhite/ button Features:- Correct incremental builds.- Automatic dependency detection (for any build task, even shell scripts).- Build graph visualization using GraphViz.- Language-independent. It can build anything.- Can automatically build when an input file is modified (using inotify).- Recursive: It can build the build description as part of the build.- Lua is the primary build description language.A ton of design work went into this. Over the past few years, I wentthrough many different designs and architectures. I finally settled onthis one about a year ago and then went to work on implementing it. I amvery happy with how it turned out.Note that this is still a ways off from being production-ready. It needssome polishing. Feedback would be most appreciated (file some issues!).I really want to make this one of the best build systems out there.Here is an example build description for DMD:I'd say that's a lot easier to read than this crusty thing:In fact, there is some experimental support for automatic conversion ofMakefiles to Button's build description format using a fork of GNU Makeitself: https:// github.com/ jasonwhite/ button-make Finally, a few notes:- I was hoping to give a talk on this at DConf, but sadly my submissionwas turned down. :'(- I am aware of Reggae, another build system written in D. Although, Iadmit I haven't looked at it very closely. I am curious how it compares.- You might also be interested in the two other libraries I wrotespecifically for this project: https:// github.com/ jasonwh ite/darg (A command-line parser) https:// github.com/ jasonwhite/io (An IO streams library)