On Sunday, 7 June 2015 at 02:04:33 UTC, Mike wrote:
On Saturday, 6 June 2015 at 20:07:22 UTC, Atila Neves wrote:
Original discussion:
http://forum.dlang.org/post/[email protected]
Now, with the `-b binary` option, reggae creates an executable
called "build" in the build directory (i.e. wherever the CWD
was when calling the tool) that knows how to build the
project. If needed, there is no longer a dependency on make or
ninja. I haven't tested it extensively, but it does pass all
the other tests I wrote for make and ninja, so it looks good.
I like what you're doing with reggae, and I salute the work.
I will reiterate my suggestion to consider making Reggae a
simple package import so this build functionality can be used
in anyone's D program, including the Reggae tool.
We already have the ability to generate a binary with the
compiler, so the binary backend seems a little redundant. You
have all the great features one would need: Targets,
dependencies, flags, build driver, etc... so it seems
plausible to move some of your driver code to the
payload/reggae package to make one's task of building a custom
driver trivial.
I don't suggest making a libreggae library as a separate
repository from the Reggae tool, but rather simply do the
refactoring to make payload/reggae folder importable from any D
program, including the Reggae tool itself.
I'll think about it. I don't think it's that easy, but I might be
wrong. I had to solve all sorts of interesting problems to get a
build description in D to work at all, but who knows, it might be
simpler than I"m making it out to be.
I'm currently considering (because of dmd, druntime and phobos)
how to strip it down to its bare essentials and have a core set
of source files that only knows how to build D code, i.e. no
C/C++, no dub, no make/ninja. That way just the small core can be
distributed which can bootstrap itself and then build D code. I'm
still figuring it out.
Atila