Doug Gregor wrote: > On Thu, Jun 26, 2008 at 8:00 PM, David Abrahams <[EMAIL PROTECTED]> wrote: >> Doug Gregor wrote: >>> On Thu, Jun 26, 2008 at 1:02 PM, troy d. straszheim <[EMAIL PROTECTED]> >>> wrote: >>>> Personally I find the embedding of toolset and version in library names to >>>> be problematic... in this case it makes the FindBoost.cmake really >>>> complicated and binds the (what should be simple) business of using the >>>> libraries to details that are utterly irrelevant here. >>> While I, personally, agree with you, I just don't think this is >>> feasible. FindBoost is there so that people can use Boost from CMake, >>> and that includes using existing and future Boost releases that depend >>> on Boost.Build's mangled library names. I disagreed with the mangled >>> approach from the start, but we're stuck with it. >> Really? I must've missed something. What practical alternative did we >> have at the start, > > Don't mangle library names. Those very few users who need to build > with multiple compilers will just keep separate build/install > directories.
But as you know, it's not just about multiple compilers: it's about incompatible ABI options and interface changes across versions of Boost. > People have been doing this on Unix systems for many, > many years. With C++? I know there are a few C++ libraries out there but I didn't think many of them had the kind of variations that we seem to want to have. What do other libraries do about each of the features described in http://www.boost.org/doc/libs/1_35_0/more/getting_started/unix-variants.html#library-naming? Are all of those letters solving non-problems? Just for example, in single-threaded programs, we apparently don't want to make people pay for synchronization when shared_ptr is copied, because then they'll say our general-purpose shared_ptr is slow. But then you need separate libraries for single- and multi-threaded programs. OK, shared_ptr is header-only, but I hope you get my point. Don't get me wrong; I'd rather drop mangling too; it just isn't obvious to me (yet) that Boost isn't unlike the other C++ libraries out there in important ways that warrant keeping it. > It's simple and works very well. The library name-mangling > stuff we do causes these users a *huge* amount of complication. I know :( That doesn't mean we can drop it. But I'd like to be convinced. >> and if we didn't need it then, why can't we quit now? > > I'm referring to the FindBoost.cmake module, which needs to deal with > Boost as it is deployed now, mangled library names and all. > > For the CMake-based Boost build system, we could consider dropping the > idea of versioned libraries entirely. We've already decided not to > even attempt support for building with multiple compilers in a single > invocation. However, dropping versioned libraries means we won't be > producing the same things as bjam, so it could make the switch to > CMake harder. Or it could make everybody really, really happy that they won't have to deal with mangling again :-) -- Dave Abrahams BoostPro Computing http://www.boostpro.com _______________________________________________ Boost-cmake mailing list Boost-cmake@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-cmake