Using multiple versions/targets of Boost

Hi, I have VC++ 7.1 and VC++ 8.0 installed on my laptop. I'd like to use Boost with both VC++. So, as I understand I need to build Boost twice, with VC++ 7.1 and with VC++ 8.0. Documentation does not say anything about such case. Now, the question is, should I install both targets to separate directories (different --prefix, e.g. C:\Boost-vc-8.0 and C:\Boost-vc-7.1) or can I install then in common dir C:\Boost ? AFAIK, libs names include toolset name e.g. libboost_date_time-vc71-mt-gdp.lib ^^^^^ So, I suppose I can install both targets into common place and I'll have following files in C:\Boost\lib: libboost_date_time-vc71-mt-gdp.lib and libboost_date_time-vc80-mt-gdp.lib Are my assumptions correct? Or it's more recommended to install separate targets (builds made with different toolsets) to separate folders? Thanks in advance Best regards -- Mateusz Łoskot http://mateusz.loskot.net

Mateusz Łoskot wrote:
So, I suppose I can install both targets into common place and I'll have following files in C:\Boost\lib:
libboost_date_time-vc71-mt-gdp.lib and libboost_date_time-vc80-mt-gdp.lib
Are my assumptions correct?
After I build latest Boost 1.33.1 with VC++ 8.0 I noticed strange thing. I called bjam with --prefix=c:\boost-vc-8_0 so all *.lib files are in location c:\boost-vc-8_0\lib on my machine. All files have names with toolset name part indicating like they were built with VC++ 7.1 - toolset vc-7_1. Example: libboost_date_time-vc71-mt-1_33_1.lib libboost_date_time-vc71-mt-gd-1_33_1.lib libboost_date_time-vc71-mt-gd.lib libboost_date_time-vc71-mt-s-1_33_1.lib libboost_date_time-vc71-mt-s.lib libboost_date_time-vc71-mt-sgd-1_33_1.lib libboost_date_time-vc71-mt-sgd.lib libboost_date_time-vc71-mt.lib libboost_date_time-vc71-s-1_33_1.lib libboost_date_time-vc71-s.lib libboost_date_time-vc71-sgd-1_33_1.lib libboost_date_time-vc71-sgd.lib Shouldn't there be vc80 toolset name like libboost_date_time-vc80-mt-1_33_1.lib ? Is this correct? Cheers -- Mateusz Łoskot http://mateusz.loskot.net

Mateusz Łoskot wrote:
Mateusz Łoskot wrote:
So, I suppose I can install both targets into common place and I'll have following files in C:\Boost\lib:
libboost_date_time-vc71-mt-gdp.lib and libboost_date_time-vc80-mt-gdp.lib
Are my assumptions correct?
After I build latest Boost 1.33.1 with VC++ 8.0 I noticed strange thing. I called bjam with --prefix=c:\boost-vc-8_0 so all *.lib files are in location c:\boost-vc-8_0\lib on my machine.
All files have names with toolset name part indicating like they were built with VC++ 7.1 - toolset vc-7_1. Example:
libboost_date_time-vc71-mt-1_33_1.lib libboost_date_time-vc71-mt-gd-1_33_1.lib libboost_date_time-vc71-mt-gd.lib libboost_date_time-vc71-mt-s-1_33_1.lib libboost_date_time-vc71-mt-s.lib libboost_date_time-vc71-mt-sgd-1_33_1.lib libboost_date_time-vc71-mt-sgd.lib libboost_date_time-vc71-mt.lib libboost_date_time-vc71-s-1_33_1.lib libboost_date_time-vc71-s.lib libboost_date_time-vc71-sgd-1_33_1.lib libboost_date_time-vc71-sgd.lib
Shouldn't there be vc80 toolset name like libboost_date_time-vc80-mt-1_33_1.lib ?
Is this correct?
I've just checkouted and built Boost from CVS (1.34) and libraries names are as I expected - with vc80 toolset name but not vc71: libboost_date_time-vc80-mt-1_34.lib libboost_date_time-vc80-mt-gd-1_34.lib libboost_date_time-vc80-mt-gd.lib libboost_date_time-vc80-mt-s-1_34.lib libboost_date_time-vc80-mt-s.lib libboost_date_time-vc80-mt-sgd-1_34.lib libboost_date_time-vc80-mt-sgd.lib libboost_date_time-vc80-mt.lib Hmm, I'm not sure but may be build system from Boost 1.33.1 does not work well with VC++ 8.0. Cheers -- Mateusz Łoskot http://mateusz.loskot.net

Mateusz Łoskot wrote:
Mateusz Łoskot wrote:
Mateusz Łoskot wrote:
So, I suppose I can install both targets into common place and I'll have following files in C:\Boost\lib:
libboost_date_time-vc71-mt-gdp.lib and libboost_date_time-vc80-mt-gdp.lib
Are my assumptions correct?
After I build latest Boost 1.33.1 with VC++ 8.0 I noticed strange thing. I called bjam with --prefix=c:\boost-vc-8_0 so all *.lib files are in location c:\boost-vc-8_0\lib on my machine.
All files have names with toolset name part indicating like they were built with VC++ 7.1 - toolset vc-7_1. Example:
libboost_date_time-vc71-mt-1_33_1.lib libboost_date_time-vc71-mt-gd-1_33_1.lib libboost_date_time-vc71-mt-gd.lib libboost_date_time-vc71-mt-s-1_33_1.lib libboost_date_time-vc71-mt-s.lib libboost_date_time-vc71-mt-sgd-1_33_1.lib libboost_date_time-vc71-mt-sgd.lib libboost_date_time-vc71-mt.lib libboost_date_time-vc71-s-1_33_1.lib libboost_date_time-vc71-s.lib libboost_date_time-vc71-sgd-1_33_1.lib libboost_date_time-vc71-sgd.lib
Shouldn't there be vc80 toolset name like libboost_date_time-vc80-mt-1_33_1.lib ?
Is this correct?
I've just checkouted and built Boost from CVS (1.34) and libraries names are as I expected - with vc80 toolset name but not vc71:
libboost_date_time-vc80-mt-1_34.lib libboost_date_time-vc80-mt-gd-1_34.lib libboost_date_time-vc80-mt-gd.lib libboost_date_time-vc80-mt-s-1_34.lib libboost_date_time-vc80-mt-s.lib libboost_date_time-vc80-mt-sgd-1_34.lib libboost_date_time-vc80-mt-sgd.lib libboost_date_time-vc80-mt.lib
Hmm, I'm not sure but may be build system from Boost 1.33.1 does not work well with VC++ 8.0.
It should... Did you use "-sTOOLS=vc-8_0" both times? As that's what it uses to determine the "vc80" tag. -- -- Grafik - Don't Assume Anything -- Redshift Software, Inc. - http://redshift-software.com -- rrivera/acm.org - grafik/redshift-software.com -- 102708583/icq - grafikrobot/aim - grafikrobot/yahoo

Rene Rivera wrote:
Mateusz Łoskot wrote:
Hmm, I'm not sure but may be build system from Boost 1.33.1 does not work well with VC++ 8.0.
It should... Did you use "-sTOOLS=vc-8_0" both times? As that's what it uses to determine the "vc80" tag.
Yes, in both cases of building Boost 1.33.1 and latest CVS I'm sure in 100% I used vc-8_0. I also executed script: C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat as well as set VC80_ROOT variable (I'm not sure if this last step is required). After short investigation I revealed that when I was compiling Boost 1.33.1 with MSVC++ 8.0 I had set BOOST_ROOT variable pointing to Boost compiled with VC++ 7.1 - C:\Boost. Also INCLUDE env was set with c:\Boost\include\boost-1_33_1 path and LIB was set with c:\Boost\lib. I'm not sure if those env variables affected my first try to build Boost with VC++ 8.0, so I got libs names with *-vc71-*. Cheers -- Mateusz Łoskot http://mateusz.loskot.net

Well, this probably isn't even possible to implement but i might aswell ask
anyway.
Can is_polymorphic take an additional optional template arg that is a type,
or a type sequence.
Those types, are not considered to make the checked type polymorphic.
Example
struct X : public boost::noncopyable {};
struct xor : public std::binary_function
::value << std::endl; std::cout << boost::is_polymorphic
::value << std::end;
output 0 0 This would be of great help. Thanks, Ray _________________________________________________________________ Dont just search. Find. Check out the new MSN Search! http://search.msn.click-url.com/go/onm00200636ave/direct/01/

Well, this probably isn't even possible to implement but i might aswell ask anyway.
Can is_polymorphic take an additional optional template arg that is a type, or a type sequence. Those types, are not considered to make the checked type polymorphic.
I'm not entirely sure what you mean here: do you mean "if class X is only polymorphic because of base class Y, then don't count X as polymorphic"? If so then I don't see any way to implement that, anyone else? John.
participants (4)
-
John Maddock
-
Mateusz Łoskot
-
Ray Hilton
-
Rene Rivera