|
View:
New views
3 Messages
—
Rating Filter:
Alert me
|
|
|
Boost.jam and 32 vs. 64 bit compilations We primarily compile in 64 bit, but sometimes need 32 bit compilations.
We used to have custom-made rules for the boost libraries, but I'm working on switching to using the boost.jam distributed in contrib. Is there a way to configure the rules in there so the library search path correctly finds either the 32- or 64-bit libraries as needed. I tried lines like : using boost : 1.38 : <include>boost_1_38_0/include/boost-1_38 <address-model>64:<library>boost_1_38_0/lib <address-model>32:<library>boost_1_38_0/lib32 ; But the conditional parameter logic confuses boost.jam into thinking boost isn't configured. I tried looking at the functions in property and property-set, but couldn't find anything to evaluate the rules to collapse the library property to just one. I'm guessing it's not even possible, because the address-model feature prints as "16 32 64" even though I'm explicitly passing in on the command-line. Is there some other simple way to add this ability? -- Anthony Foglia Princeton Consultants (609) 987-8787 x233 _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build |
|
|
Re: Boost.jam and 32 vs. 64 bit compilationsAnthony: I've been able to do this sort of conditional on searched-
lib targets. A related question for the list in general: Why isn't the address model part of the name of the libraries compiled from Boost? If it were, the conditional <library> feature would not be necessary. On Jun 15, 2009, at 6:29 PM, Anthony Foglia wrote: We primarily compile in 64 bit, but sometimes need 32 bit compilations. We used to have custom-made rules for the boost libraries, but I'm working on switching to using the boost.jam distributed in contrib. Is there a way to configure the rules in there so the library search path correctly finds either the 32- or 64-bit libraries as needed. I tried lines like : using boost : 1.38 : <include>boost_1_38_0/include/boost-1_38 <address-model>64:<library>boost_1_38_0/lib <address-model>32:<library>boost_1_38_0/lib32 ; But the conditional parameter logic confuses boost.jam into thinking boost isn't configured. I tried looking at the functions in property and property-set, but couldn't find anything to evaluate the rules to collapse the library property to just one. I'm guessing it's not even possible, because the address-model feature prints as "16 32 64" even though I'm explicitly passing in on the command-line. Is there some other simple way to add this ability? -- Anthony Foglia Princeton Consultants (609) 987-8787 x233 _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build |
|
|
Re: Boost.jam and 32 vs. 64 bit compilationsIan Emmons wrote:
> Anthony: I've been able to do this sort of conditional on searched-lib > targets. Yes. Originally we had defined lib targets explicitly for each of the Boost libraries that needed linking, and through conditionals on those boost-build would find the correct version. My mistake was trying to switch to the "boost.jam" file, which is the suggested way of include boost libraries in a boost-build project. That you configure by passing it <include> and <library> properties. But the logic isn't smart enough to determine if one of them is set via a conditional. It looks like what I need to do is go through all the options, look to see if any are conditional, and if so, if they define the library path, and then, use that library path as the <search> property for the boost project defined within. Which is way more advanced than my weak boost-build skills are capable of. (That, or get the final address-model and context at the point boost.use-project is called, but I don't think that's possible.) > On Jun 15, 2009, at 6:29 PM, Anthony Foglia wrote: > > We primarily compile in 64 bit, but sometimes need 32 bit > compilations. We used to have custom-made rules for the boost > libraries, but I'm working on switching to using the boost.jam > distributed in contrib. > > Is there a way to configure the rules in there so the library search > path correctly finds either the 32- or 64-bit libraries as needed. > > I tried lines like : > > using boost > : 1.38 > : <include>boost_1_38_0/include/boost-1_38 > <address-model>64:<library>boost_1_38_0/lib > <address-model>32:<library>boost_1_38_0/lib32 > ; > > But the conditional parameter logic confuses boost.jam into thinking > boost isn't configured. -- Anthony Foglia Princeton Consultants (609) 987-8787 x233 _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build |
| Free embeddable forum powered by Nabble | Forum Help |