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: 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 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: https://github.com/jasonwhite/button-make 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: - https://github.com/jasonwhite/darg (A command-line parser) - https://github.com/jasonwhite/io (An IO streams library)
Are you on Freenode (no nick to name right now)? I would like to talk to you about a few ideas relating to lua and D.
