In any event, I'd ask how do the current build systems do it?
They read
and parse through the source files to learn about dependencies
No, they:
1. Run "$ dmd -o- -c main.d -deps=deps.txt" which will write
out all dependencies of "main.d" to "deps.txt"
Personally, I don't see how that would work using the current
form of the output. I tried it with Make to figure out
dependencies and the problem I immediately ran into was that
the output did not contain full path information for the
projects modules, and without that information, there was no
way to combine builds from related project under a separate
folder.
It's easy to work around that. It's certainly orders of magnitude
easier than parsing the source files. Besides, parsing them isn't
even enough because imports can be inside static if blocks or
templates. You need pretty much an entire D frontend to correctly
find dependencies from source files.