On Tuesday, 3 February 2015 at 21:05:38 UTC, Atila Neves wrote:
I didn't forget it myself, but thanks for bringing it up. I'm considering having a tup backend actually. Tup is cool but unfortunately is still "too manual", for lack of a better term. I'd much rather write "add_executable" and not worry about the details than write the commands explicitly myself. But it's certainly interesting as an alternative backend to, say, Ninja.
I would warn against this attitude. Trying to do too much magic is one of reasons I ignore all of modern build tools and still keep my makefiles. There is huge benefit in knowing that your build tool can express any dependency tree based workflow in uniform manner - be it compiling sometithing, downloading remote artifacts or generating a package.
With a good base "smart" solutions can be built on top. This is actually how we use make in Sociomantic - by having a set of standard makefiles with D-specific rules that allow to define build target as simple as this:
$B/appname: $C/src/appname/main.d all += $B/appname (yes, that is all that needs to be in actual makefile)