[TxMt] Re: Dependency cycle between plist/headers <-> cache.capnp.h?

Allan Odgaard mailinglist at textmate.org
Mon Jun 11 22:20:50 UTC 2018


On 10 Mar 2018, at 20:10, jason wrote:

> Any interest in trying out the Bazel build system? It's really fast 
> (like
> ninja), and does not allow undeclared dependencies in C-language build
> rules by design.

The ninja build system itself is a bit like make in that it’s just a 
low-level DSL to describe the dependency graph.

There is a script that generates the graph, which is heavily customized 
to the needs of TextMate (and myself). I have looked at other build 
systems, and I also took a quick look at Bazel, but I do not see an 
advantage in switching, as I would have to write a ton of custom code to 
bring it up to what the current system does, and for this, it’s 
actually best with a low-level build system rather than one that tries 
to handle everything, since there are no standards for how to manage 
multiple targets that can depend on each other, use each other’s 
header files, resources, etc., which means all the free stuff you get 
out of the box with these higher level build systems are often stuff 
that is just in the way when you have a complex project…

For the dependency cycle that ninja “did not detect”, I do actually 
have some (non-committed) code that improves on dependency detection 
which would have caught this, but it’s not just a simple “source 
depends on header” issue, but about link dependencies, which can be a 
little tricky, as you can’t assume that including a header file means 
you necessarily wants to link with the library to which the header 
belongs, for example some sources may include oak/debug.h but do not 
want to automatically link with my oak debug library, unless in debug 
mode, and iirc that was the primary reason I didn’t yet push the code 
that automatically figures out link dependencies.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macromates.com/textmate/attachments/20180612/0d6dcfa3/attachment.html>


More information about the textmate mailing list