[modular-boost] /boost//headers error
I am seeing a strange discrepancy between building the headers target from the command line vs including it as a dependency in another target. In our own projects we 'use-project /boost : $(PATH_TO_BOOST) ;' and use the headers target. But as a reproducible example, if I add /boost//headers to tools/quickbook/src/Jamfile.v2 I get: http://pastebin.com/KMcMSLZW I tried to debug it, but alas my skills at boost-build seem to be insufficient. It is interesting to note however that when looking at 'b2 -d5' output 'sequence.join library-name-headers .' seems to be invoked when it fails, yet that does not occur when it succeeds. If anyone has any ideas on how to get this working again, I would be happy to look into this more. -- Thomas I for one welcome our new git overlords.
AMDG On 02/06/2014 12:02 PM, Thomas Suckow wrote:
I am seeing a strange discrepancy between building the headers target from the command line vs including it as a dependency in another target.
In our own projects we 'use-project /boost : $(PATH_TO_BOOST) ;' and use the headers target. But as a reproducible example, if I add /boost//headers to tools/quickbook/src/Jamfile.v2 I get: http://pastebin.com/KMcMSLZW
I tried to debug it, but alas my skills at boost-build seem to be insufficient. It is interesting to note however that when looking at 'b2 -d5' output 'sequence.join library-name-headers .' seems to be invoked when it fails, yet that does not occur when it succeeds.
If anyone has any ideas on how to get this working again, I would be happy to look into this more.
Use <implicit-dependency>/boost//headers In Christ, Steven Watanabe
On 02/06/2014 12:19 PM, Steven Watanabe wrote:
AMDG
On 02/06/2014 12:02 PM, Thomas Suckow wrote:
I am seeing a strange discrepancy between building the headers target from the command line vs including it as a dependency in another target.
In our own projects we 'use-project /boost : $(PATH_TO_BOOST) ;' and use the headers target. But as a reproducible example, if I add /boost//headers to tools/quickbook/src/Jamfile.v2 I get: http://pastebin.com/KMcMSLZW
Use <implicit-dependency>/boost//headers
I changed all the references in our project to use implicit-dependency and that works. It doesn't create the links, but I guess ./b2 headers is just something I will need to remember to do. Thanks Steven! - Thomas
AMDG On 02/06/2014 12:40 PM, Thomas Suckow wrote:
On 02/06/2014 12:19 PM, Steven Watanabe wrote:
Use <implicit-dependency>/boost//headers
I changed all the references in our project to use implicit-dependency and that works. It doesn't create the links, but I guess ./b2 headers is just something I will need to remember to do.
It's supposed to create the links and it seems to work within the Boost tree (for the most part--a few dependencies are missed). In Christ, Steven Watanabe
On 02/06/2014 06:57 PM, Steven Watanabe wrote:
AMDG
On 02/06/2014 12:40 PM, Thomas Suckow wrote:
On 02/06/2014 12:19 PM, Steven Watanabe wrote:
Use <implicit-dependency>/boost//headers
I changed all the references in our project to use implicit-dependency and that works. It doesn't create the links, but I guess ./b2 headers is just something I will need to remember to do.
It's supposed to create the links and it seems to work within the Boost tree (for the most part--a few dependencies are missed).
I did some more experimenting, seems that I should be using more than just implicit-dependency as that will only indicate that the target may produce files that are included by the sources. Adding <dependency>/boost//headers causes the links to be generated, though I suspect the include path is being brought in my some other means because based on the description of the "features" it seems I should not put in <dependency> but instead <use> so the usage-requirements are brought across. A la: <use>/boost//headers <implicit-dependency>/boost//headers - Thomas
AMDG On 02/07/2014 09:25 AM, Thomas Suckow wrote:
On 02/06/2014 06:57 PM, Steven Watanabe wrote:
AMDG
On 02/06/2014 12:40 PM, Thomas Suckow wrote:
On 02/06/2014 12:19 PM, Steven Watanabe wrote:
Use <implicit-dependency>/boost//headers
I changed all the references in our project to use implicit-dependency and that works. It doesn't create the links, but I guess ./b2 headers is just something I will need to remember to do.
It's supposed to create the links and it seems to work within the Boost tree (for the most part--a few dependencies are missed).
I did some more experimenting, seems that I should be using more than just implicit-dependency as that will only indicate that the target may produce files that are included by the sources.
<implicit-dependency> will generate all the links that are found by the #include scanner. <dependency> will generate all links unconditionally.
Adding <dependency>/boost//headers causes the links to be generated, though I suspect the include path is being brought in my some other means because based on the description of the "features" it seems I should not put in <dependency> but instead <use> so the usage-requirements are brought across.
<dependency> gives you the usage requirements as well. <use> gives you the usage requirements, but does not add a dependency (i.e. <use>/boost//headers will add -Ipath/to/boost, but won't generate the headers. <dependency>/boost//headers will add -Ipath/to/boost and generate all the headers.). In Christ, Steven Watanabe
participants (2)
-
Steven Watanabe
-
Thomas Suckow