On 3/06/2015 18:38, Bjørn Roald wrote:
Having said that, conceptually I like the stage step as a build step and the stage folder as a staging area within $BOOST_ROOT of what will be installed somewhere else if you use "b2 install --prefix=PREFIX", with this as a concept the message at the end of the build could be:
The Boost C++ Libraries were successfully built!
The following directory should be added to compiler include paths:
C:\Projects\boost-git\boost\stage\include
The following directory should be added to linker library paths:
C:\Projects\boost-git\boost\stage\lib
Use ./b2 install --prefix=PREFIX to install boost elsewhere.
+1. It seems weird to not have "include" and "lib" in the same place, so if a staging dir is how Boost wants to build its libraries, it should do the same thing for the headers, especially since they're getting copied/linked from the library subdirs anyway.
As a side effect boost users that preferred to build boost themselves and opted to not use "b2 install" could still use $BOOST_ROOT/boost. I think that is unfortunate, maybe we should have hidden the header links somewhere out of sight as long as they where needed, maybe within $BOOST_ROOT/bin.v2 and done what we are discussing now with proper copies for external use in the first place. Possibly as part of a modified "b2 stage" target.
I would prefer if the "b2 install" step were still optional, but I don't see this as a problem as users could just refer to $BOOST_ROOT/stage/include and $BOOST_ROOT/stage/lib, exactly as shown in the proposed message above. (Or the user could manually copy just the stage folder elsewhere to "install" it -- provided that it didn't contain any symlinks, which is a fairly safe bet on Windows.)