On Tuesday, 31 May 2016 at 10:15:14 UTC, Atila Neves wrote:
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:

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 think the Makefile converter is probably the coolest thing about this build system. I don't know of any other build system that has done this. The only problem is that it doesn't do well with Makefiles that invoke make recursively. I tried compiling Git using it, but Git does some funky stuff with recursive make like grepping the output of the sub-make.

- 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.

I constantly save like a madman too. If an incremental build is sufficiently fast, it doesn't really matter. You can also specify a delay so it accumulates changes and then after X milliseconds it runs a build.

- 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.

It means that Button can run Button as a build task (and it does it correctly). A child Button process reports its dependencies to the parent Button process via a pipe. This is the same mechanism that detects dependencies for ordinary tasks. Thus, there is no danger of doing incorrect incremental builds when recursively running Button like there is with Make.

- Lua is the primary build description language.

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

That's pretty cool. It is possible for Button to do the same, but I don't really want to support that many languages. In fact, the Make and Lua build descriptions both work the same exact way - they output a JSON build description for Button to use. So long as someone can write a program to do this, they can write their build description in it.

Reply via email to