AMDG On 10/20/2018 01:17 PM, Peter Dimov via Boost wrote:
Steven Watanabe wrote:
3. Old-school buildable libraries. These have a dependency on > /boost/headers.
4. Newfangled buildable libraries. These enumerate all of their > dependencies in their Jamfile, including type 2 header-only ones. If > they use no type 1 libraries, they don't need a dependency on > /boost/headers, and don't need the header links.
I mostly agree with you, except for one issue: This is severely complicated by the fact that the dependency on headers is currently implicit. How are we going to distinguish (3) from (4)? If we're making incremental updates, then we can't make any changes at all to the old-school libraries, so we can't rely on them telling us that they need /boost/headers.
There aren't that many type 3 libraries, and they already have build/Jamfiles, so making the dependency explicit for type 3 is feasible. We can just add it to them.
Testing might be a problem. test/Jamfile for header-only type 1 libraries needs the implicit headers too. Still doable though.
It's easy enough to detect by checking for the presence of build/Jamfile. I don't see any way to poke the dependency in externally, though. If we're going to have to modify everything anyway, we might as well give up on making the changes incremental. In Christ, Steven Watanabe