On Fri, May 30, 2014 at 8:31 AM, Peter Dimov
Glen Fernandes wrote:
It would be nice if both approaches (static configuration, automatic identification) take into account - or allow you to specify - conditional dependencies (e.g. dependencies based on identification of supported or unsupported features determined by Boost.Config).
It would be nice, but is it implementable? How could the dependency tracker determine what Boost.Config will define?
I've been assuming that Julian's proposal will require, at least initially, that someone (the library maintainer, an interested volunteer) manually edit a specification in some syntax of the other libraries on which this one directly depends. That information could be informed by, but need not be identical to, the output of a tool. In that case, Glen's suggestion only requires that the specification syntax include some way of annotating each dependency: "only for the following toolsets..." It may also be possible to write a (wave-based?) tool that analyzes the preprocessor conditions under which each #include is reached, but I see that as very much a separable (and deferrable) effort.