Boost logo

Boost :

Subject: [boost] [build] Tests automatically create header links, but library builds do not
From: Peter Dimov (lists_at_[hidden])
Date: 2015-01-03 12:00:30


If I remove my boost/ directory, and attempt to build, for example, atomic,
by going into libs/atomic/build and invoking b2, it fails due to a missing
header:

D:\tmp2\libs\atomic\build>b2 toolset=msvc-8.0
...found 1 target...
...updating 1 target...
msvc.write-setup-script
C:\Users\PETERD~1\AppData\Local\Temp\b2_msvc_8.0_vcvarsall_x86.cmd
...updated 1 target...
...found 1 target...
...updating 1 target...
msvc.write-setup-script
C:\Users\PETERD~1\AppData\Local\Temp\b2_msvc_8.0_vcvarsall_x86_amd64.cmd
...updated 1 target...
Performing configuration checks

    - symlinks supported : no
    - junctions supported : yes
    - hardlinks supported : yes
...found 208 targets...
...updating 5 targets...
common.mkdir
..\..\..\bin.v2\libs\atomic\build\msvc-8.0\debug\threading-multi
compile-c-c++
..\..\..\bin.v2\libs\atomic\build\msvc-8.0\debug\threading-multi\lockpool.obj
lockpool.cpp
..\..\..\boost/atomic/detail/ops_msvc_x86.hpp(20) : fatal error C1083:
Cannot open include file: 'boost/type_traits/make_signed.hpp': No such file
or directory

[...]

Same if I do b2 --with-atomic from root.

However, if I go into, say, libs/smart_ptr/test and invoke b2 there, it
works:

D:\tmp2\libs\smart_ptr\test>b2 toolset=msvc-8.0
...found 1 target...
...updating 1 target...
msvc.write-setup-script
C:\Users\PETERD~1\AppData\Local\Temp\b2_msvc_8.0_vcvarsa
ll_x86.cmd
...updated 1 target...
...found 1 target...
...updating 1 target...
msvc.write-setup-script
C:\Users\PETERD~1\AppData\Local\Temp\b2_msvc_8.0_vcvarsa
ll_x86_amd64.cmd
...updated 1 target...
Performing configuration checks

    - symlinks supported : no
    - junctions supported : yes
    - hardlinks supported : yes
...patience...
...found 1722 targets...
...updating 1253 targets...
common.mkdir ..\..\..\bin.v2\libs\smart_ptr
common.mkdir ..\..\..\bin.v2\libs\smart_ptr\test
common.mkdir ..\..\..\bin.v2\libs\smart_ptr\test\yield_k_test~mt.test
common.mkdir
..\..\..\bin.v2\libs\smart_ptr\test\yield_k_test~mt.test\msvc-8.0
common.mkdir
..\..\..\bin.v2\libs\smart_ptr\test\yield_k_test~mt.test\msvc-8.0\debug
common.mkdir
..\..\..\bin.v2\libs\smart_ptr\test\yield_k_test~mt.test\msvc-8.0\debug\threading-multi
mklink-or-dir ..\..\..\boost\smart_ptr
Junction created for ..\..\..\boost\smart_ptr <<===>>
..\include\boost\smart_ptr

link.hardlink ..\..\..\boost\predef.h
Hardlink created for ..\..\..\boost\predef.h <<===>>
..\..\predef\include\boost\predef.h

[...]

Why is that?

My first thought was that this was due to the fact that I was missing
libs/Jamfile.v2 (I do various "clean" installations as an experiment to see
what's needed and what isn't), but I put it back there and it doesn't help.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk