bjamming that used to work before modular-boost
I have a jamfile.v2 in a sandbox project that used to work before. I have started using modular-boost, and after some fumbling, I'm using that OK-ish. The message is: Unable to find the Boost source tree in the locations searched. Try setting the environment variable BOOST to point to your Boost tree, or else invoke bjam with the --boost=path option. The Boost include path will not be automatically set. The paths searched were I:\boost-sandbox\guild/../boost I:\boost-sandbox\guild/../Trunk But the file LICENSE_1_0.txt was not found in any of them Unable to find the Boost.Build source tree in the locations searched. Try setting the environment variable BOOST_BUILD to point to your Boost.Build tree, or else invoke bjam with the --boost-build=path option. The paths searched were i:\modular-boost\tools\build\v2 But bootstrap.jam was not found in any of these More failures will very likely follow... (And they did ;-( ) I've tried some guesses at parameters including b2 --boost=i:\modular-boost --boost-build=i:\modular-boost\tools\build -a html without success. I have boost-build.jam at I:\modular-boost Suggestions please. Paul PS I'd like to change environment variables if possible to avoid changing lots of .bat files that call b2. --- Paul A. Bristow, Prizet Farmhouse, Kendal LA8 8AB UK +44 1539 561830 07714330204 pbristow@hetp.u-net.com
On 19 January 2014 14:38, Paul A. Bristow
I have boost-build.jam at I:\modular-boost
Suggestions please.
The boost-build.jam file from the sandbox (http://svn.boost.org/svn/boost/sandbox/guild/boost-build.jam) needs to be updated for the new layout of boost build. This is out of date: local boost-build-src = [ if-has-file bootstrap.jam : [ MATCH --boost-build=(.*) : $(ARGV) ] $(BOOST_BUILD_PATH) $(BOOST_BUILD) $(boost-src)/tools/build/v2 ] ; '/v2' is no longer required in the path, and 'bootstrap.jam' is in a different directory now. Changing it to this might work: local boost-build-src = [ if-has-file bootstrap.bat : [ MATCH --boost-build=(.*) : $(ARGV) ] $(BOOST_BUILD_PATH) $(BOOST_BUILD) $(boost-src)/tools/build ] ;
-----Original Message----- From: Boost [mailto:boost-bounces@lists.boost.org] On Behalf Of Daniel James Sent: Sunday, January 19, 2014 2:55 PM To: boost@lists.boost.org Subject: Re: [boost] bjamming that used to work before modular-boost
On 19 January 2014 14:38, Paul A. Bristow
wrote: I have boost-build.jam at I:\modular-boost
Suggestions please.
The boost-build.jam file from the sandbox (http://svn.boost.org/svn/boost/sandbox/guild/boost-build.jam) needs to be updated for the new layout of boost build. This is out of date:
local boost-build-src = [ if-has-file bootstrap.jam : [ MATCH --boost-build=(.*) : $(ARGV) ] $(BOOST_BUILD_PATH) $(BOOST_BUILD) $(boost-src)/tools/build/v2 ] ;
'/v2' is no longer required in the path, and 'bootstrap.jam' is in a different directory now. Changing it to this might work:
local boost-build-src = [ if-has-file bootstrap.bat : [ MATCH --boost-build=(.*) : $(ARGV) ] $(BOOST_BUILD_PATH) $(BOOST_BUILD) $(boost-src)/tools/build ] ;
That changes the result but doesn't entirely solve the problem. adding --boost=i:\modular-boost finds the licence text OK, but then gives Unable to load Boost.Build: could not find build system. --------------------------------------------------------- I:\boost-sandbox\guild\boost-build.jam attempted to load the build system by invoking 'boost-build I:\modular-boost\tools\build ;' but we were unable to find "bootstrap.jam" in the specified directory or in BOOST_BUILD_PATH (searching I:\modular-boost\tools\build). which is because it does not contain this file "bootstrap.jam" (and nor does i:\modular-boost) ??? Does this need changing too (to avoid adding --boost=I:\modular-boost) local boost-src = [ if-has-file LICENSE_1_0.txt : [ MATCH --boost=(.*) : $(ARGV) ] $(BOOST) $(.boost-build-file:D)/../modular-boost/boost <<<<<<<<<< would this be right? $(.boost-build-file:D)/../boost $(.boost-build-file:D)/../Trunk ] ; Thanks again. Paul --- Paul A. Bristow, Prizet Farmhouse, Kendal LA8 8AB UK +44 1539 561830 07714330204 pbristow@hetp.u-net.com
On 19 January 2014 15:56, Paul A. Bristow
-----Original Message----- From: Boost [mailto:boost-bounces@lists.boost.org] On Behalf Of Daniel James Sent: Sunday, January 19, 2014 2:55 PM To: boost@lists.boost.org Subject: Re: [boost] bjamming that used to work before modular-boost
On 19 January 2014 14:38, Paul A. Bristow
wrote: I have boost-build.jam at I:\modular-boost
Suggestions please.
The boost-build.jam file from the sandbox (http://svn.boost.org/svn/boost/sandbox/guild/boost-build.jam) needs to be updated for the new layout of boost build. This is out of date:
local boost-build-src = [ if-has-file bootstrap.jam : [ MATCH --boost-build=(.*) : $(ARGV) ] $(BOOST_BUILD_PATH) $(BOOST_BUILD) $(boost-src)/tools/build/v2 ] ;
'/v2' is no longer required in the path, and 'bootstrap.jam' is in a different directory now. Changing it to this might work:
local boost-build-src = [ if-has-file bootstrap.bat : [ MATCH --boost-build=(.*) : $(ARGV) ] $(BOOST_BUILD_PATH) $(BOOST_BUILD) $(boost-src)/tools/build ] ;
That changes the result but doesn't entirely solve the problem.
adding --boost=i:\modular-boost finds the licence text OK, but then gives
Unable to load Boost.Build: could not find build system. --------------------------------------------------------- I:\boost-sandbox\guild\boost-build.jam attempted to load the build system by invoking 'boost-build I:\modular-boost\tools\build ;' but we were unable to find "bootstrap.jam" in the specified directory or in BOOST_BUILD_PATH (searching I:\modular-boost\tools\build).
which is because it does not contain this file "bootstrap.jam" (and nor does i:\modular-boost)
Oh, I guess it needs to find the 'tools/build/src' path where bootstrap.jam is located. Maybe this would work: local boost-build-src = [ if-has-file bootstrap.jam : [ MATCH --boost-build=(.*) : $(ARGV) ] $(BOOST_BUILD_PATH) $(BOOST_BUILD) $(boost-src)/tools/build/src ] ;
-----Original Message----- From: Boost [mailto:boost-bounces@lists.boost.org] On Behalf Of Daniel James Sent: Sunday, January 19, 2014 4:17 PM To: boost@lists.boost.org Subject: Re: [boost] bjamming that used to work before modular-boost
On 19 January 2014 15:56, Paul A. Bristow
wrote: -----Original Message----- From: Boost [mailto:boost-bounces@lists.boost.org] On Behalf Of Daniel James Sent: Sunday, January 19, 2014 2:55 PM To: boost@lists.boost.org Subject: Re: [boost] bjamming that used to work before modular-boost
On 19 January 2014 14:38, Paul A. Bristow
wrote: I have boost-build.jam at I:\modular-boost
Suggestions please.
The boost-build.jam file from the sandbox (http://svn.boost.org/svn/boost/sandbox/guild/boost-build.jam) needs to be updated for the new layout of boost build. This is out of date:
local boost-build-src = [ if-has-file bootstrap.jam : [ MATCH --boost-build=(.*) : $(ARGV) ] $(BOOST_BUILD_PATH) $(BOOST_BUILD) $(boost-src)/tools/build/v2 ] ;
'/v2' is no longer required in the path, and 'bootstrap.jam' is in a different directory now. Changing it to this might work:
local boost-build-src = [ if-has-file bootstrap.bat : [ MATCH --boost-build=(.*) : $(ARGV) ] $(BOOST_BUILD_PATH) $(BOOST_BUILD) $(boost-src)/tools/build ] ;
That changes the result but doesn't entirely solve the problem.
adding --boost=i:\modular-boost finds the licence text OK, but then gives
Unable to load Boost.Build: could not find build system. --------------------------------------------------------- I:\boost-sandbox\guild\boost-build.jam attempted to load the build system by invoking 'boost-build I:\modular-boost\tools\build ;' but we were unable to find "bootstrap.jam" in the specified directory or in BOOST_BUILD_PATH (searching I:\modular-boost\tools\build).
which is because it does not contain this file "bootstrap.jam" (and nor does i:\modular-boost)
Oh, I guess it needs to find the 'tools/build/src' path where bootstrap.jam is located. Maybe this would work:
local boost-build-src = [ if-has-file bootstrap.jam : [ MATCH --boost-build=(.*) : $(ARGV) ] $(BOOST_BUILD_PATH) $(BOOST_BUILD) $(boost-src)/tools/build/src ] ;
Yes - works for me :-) But to avoid providing BOOST or BOOST_ROOT environment variables, or parameter --boost=i:\modular-boost I also added #~ Attempts to find the Boost source tree... #~ --boost=i:\modular-boost may be needed. local boost-src = [ if-has-file LICENSE_1_0.txt : [ MATCH --boost=(.*) : $(ARGV) ] $(BOOST) $(.boost-build-file:D)/../../modular-boost/ <<<<<<<<<<<<<<<< new for modular-boost $(.boost-build-file:D)/../boost $(.boost-build-file:D)/../Trunk ] ; I fear that I am not the only one who will need to make quite a few adjustments (and also to MSVC solutions/projects) as a result of modularization. Thanks again. Paul --- Paul A. Bristow, Prizet Farmhouse, Kendal LA8 8AB UK +44 1539 561830 07714330204 pbristow@hetp.u-net.com
On 19 January 2014 17:10, Paul A. Bristow
I also added
#~ Attempts to find the Boost source tree... #~ --boost=i:\modular-boost may be needed. local boost-src = [ if-has-file LICENSE_1_0.txt : [ MATCH --boost=(.*) : $(ARGV) ] $(BOOST) $(.boost-build-file:D)/../../modular-boost/ <<<<<<<<<<<<<<<< new for modular-boost $(.boost-build-file:D)/../boost $(.boost-build-file:D)/../Trunk ] ;
I fear that I am not the only one who will need to make quite a few adjustments (and also to MSVC solutions/projects) as a result of modularization.
I doubt many people will happen to have the appropriate directory layout for that to work. It's a pity that we don't have a better way to deal with this kind of dependency.
On 01/19/2014 09:10 AM, Paul A. Bristow wrote:
-----Original Message----- From: Boost [mailto:boost-bounces@lists.boost.org] On Behalf Of Daniel James Sent: Sunday, January 19, 2014 4:17 PM To: boost@lists.boost.org Subject: Re: [boost] bjamming that used to work before modular-boost
On 19 January 2014 15:56, Paul A. Bristow
wrote: -----Original Message----- From: Boost [mailto:boost-bounces@lists.boost.org] On Behalf Of Daniel James Sent: Sunday, January 19, 2014 2:55 PM To: boost@lists.boost.org Subject: Re: [boost] bjamming that used to work before modular-boost
On 19 January 2014 14:38, Paul A. Bristow
wrote: I have boost-build.jam at I:\modular-boost
Suggestions please. The boost-build.jam file from the sandbox (http://svn.boost.org/svn/boost/sandbox/guild/boost-build.jam) needs to be updated for the new layout of boost build. This is out of date:
local boost-build-src = [ if-has-file bootstrap.jam : [ MATCH --boost-build=(.*) : $(ARGV) ] $(BOOST_BUILD_PATH) $(BOOST_BUILD) $(boost-src)/tools/build/v2 ] ;
'/v2' is no longer required in the path, and 'bootstrap.jam' is in a different directory now. Changing it to this might work:
local boost-build-src = [ if-has-file bootstrap.bat : [ MATCH --boost-build=(.*) : $(ARGV) ] $(BOOST_BUILD_PATH) $(BOOST_BUILD) $(boost-src)/tools/build ] ; That changes the result but doesn't entirely solve the problem.
adding --boost=i:\modular-boost finds the licence text OK, but then gives
Unable to load Boost.Build: could not find build system. --------------------------------------------------------- I:\boost-sandbox\guild\boost-build.jam attempted to load the build system by invoking 'boost-build I:\modular-boost\tools\build ;' but we were unable to find "bootstrap.jam" in the specified directory or in BOOST_BUILD_PATH (searching I:\modular-boost\tools\build).
which is because it does not contain this file "bootstrap.jam" (and nor does i:\modular-boost)
Oh, I guess it needs to find the 'tools/build/src' path where bootstrap.jam is located. Maybe this would work:
local boost-build-src = [ if-has-file bootstrap.jam : [ MATCH --boost-build=(.*) : $(ARGV) ] $(BOOST_BUILD_PATH) $(BOOST_BUILD) $(boost-src)/tools/build/src ] ; Yes - works for me :-)
But to avoid providing BOOST or BOOST_ROOT environment variables, or parameter --boost=i:\modular-boost
I also added
#~ Attempts to find the Boost source tree... #~ --boost=i:\modular-boost may be needed. local boost-src = [ if-has-file LICENSE_1_0.txt : [ MATCH --boost=(.*) : $(ARGV) ] $(BOOST) $(.boost-build-file:D)/../../modular-boost/ <<<<<<<<<<<<<<<< new for modular-boost $(.boost-build-file:D)/../boost $(.boost-build-file:D)/../Trunk ] ;
I am personally a fan of including $(self:D) for finding boost-src which is the location of the b2 executable. This has worked for me in the past on Linux & Windows. However, modular-boost still doesn't work for me as I believe the /boost//headers target has problems. Though I haven't been able to figure out what. Output: http://pastebin.com/6WMRg4Cd - Thomas
On 1/19/2014 9:38 AM, Paul A. Bristow wrote:
I have a jamfile.v2 in a sandbox project that used to work before.
I have started using modular-boost, and after some fumbling, I'm using that OK-ish.
The message is:
Unable to find the Boost source tree in the locations searched. Try setting the environment variable BOOST to point to your Boost tree, or else invoke bjam with the --boost=path option. The Boost include path will not be automatically set. The paths searched were I:\boost-sandbox\guild/../boost I:\boost-sandbox\guild/../Trunk But the file LICENSE_1_0.txt was not found in any of them
Unable to find the Boost.Build source tree in the locations searched. Try setting the environment variable BOOST_BUILD to point to your Boost.Build tree, or else invoke bjam with the --boost-build=path option. The paths searched were i:\modular-boost\tools\build\v2 But bootstrap.jam was not found in any of these More failures will very likely follow...
(And they did ;-( )
I've tried some guesses at parameters including
b2 --boost=i:\modular-boost --boost-build=i:\modular-boost\tools\build -a html
without success.
I have boost-build.jam at I:\modular-boost
Suggestions please.
Here are my suggestions from what I do with my own libraries which use Boost: 1) Change the structure of your library for modular-boost rather than the old SVN structure. 2) Move your library into the modular-boost build tree under the 'libs' subdirectory. 3) Make a symbolic directory link under the modular-boost 'boost' subdirectory to your header files directory within 'libs'. 4) Get rid of any top-level jamfile for your library. Once you are within modular-boost the particular jamfiles for tests and docs should just work. 5) Forget about --boost= stuff on your b2 invocation since you are within the modular-boost tree. This works for me. I hope it will work for you.
-----Original Message----- From: Boost [mailto:boost-bounces@lists.boost.org] On Behalf Of Edward Diener Sent: Monday, January 20, 2014 5:00 AM To: boost@lists.boost.org Subject: Re: [boost] bjamming that used to work before modular-boost
On 1/19/2014 9:38 AM, Paul A. Bristow wrote:
I have a jamfile.v2 in a sandbox project that used to work before.
I have started using modular-boost, and after some fumbling, I'm using that OK-ish.
Suggestions please.
Here are my suggestions from what I do with my own libraries which use Boost:
1) Change the structure of your library for modular-boost rather than the old SVN structure.
2) Move your library into the modular-boost build tree under the 'libs' subdirectory.
3) Make a symbolic directory link under the modular-boost 'boost' subdirectory to your header files directory within 'libs'.
4) Get rid of any top-level jamfile for your library. Once you are within modular-boost the particular jamfiles for tests and docs should just work.
5) Forget about --boost= stuff on your b2 invocation since you are within the modular-boost tree.
This works for me. I hope it will work for you.
Sounds good - I've used new structure for new projects. But that's a very helpful guide to moving old ones. Thanks Paul --- Paul A. Bristow, Prizet Farmhouse, Kendal LA8 8AB UK +44 1539 561830 07714330204 pbristow@hetp.u-net.com
participants (4)
-
Daniel James
-
Edward Diener
-
Paul A. Bristow
-
Thomas Suckow