On 12 Jun 2018, at 0:20, Allan Odgaard wrote:
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.
For anyone interested in this stuff, I have updated the build process: https://github.com/textmate/textmate/commit/412e6798ca206b15cdc8f86a1387835a3f4f82e7
This should address the issues some have experienced during initial full build where a header is unavailable because that target has not yet been built yet.
More details in the commit message.