On 30. Jul, 2010, at 14:31 , Olaf van der Spek wrote:
> On Fri, Jul 30, 2010 at 2:25 PM, Michael Wild <[email protected]> wrote:
>> Create a module and share it among your projects, possibly with others. If
>> it's any good it might get included in CMake.
>
> I probably will.
>
>>>>> On Windows, at least build type, run-time and platform.
>>>>> But what should and what should not be part of the name doesn't have
>>>>> to be fixed. So that's no problem.
>>>>
>>>> Please do explain. How would this work? What would the API be?
>>>
>>> I don't know yet.
>>
>> So, how is it no problem then?
>
> Because I'm quite sure it can be solved.
*sigh*.
>
>>>> Why? (See how annoying this is? Normally I expect this kind of
>>>> argumentation/questioning from 4-5 year olds...)
>>>
>>> Because I don't have to specify the libs to link against myself.
>>
>> Yes, you do. Because most people library authors will just refuse to write
>> and maintain an auto_link.hpp
>
> The auto_link you quoted is not library-specific. But it seems you
> understand why code duplication is bad.
> So there's no need to maintain such an auto_link file.
Oh, it IS library specific. Where do you think all these BOOST_MSVC and what
not come from? It is very specific to Boost. No other project will be able to
use this without heavy reworking.
>
>> For every new version of MSVC, Xcode etc. you have to update the file.
>> Usually you will be lagging behind, and your users even more so. And then
>> they will complain. To you.
>
> See above.
See below (that doesn't need more explanation...)
//
// select toolset if not defined already:
//
#ifndef BOOST_LIB_TOOLSET
// Note: no compilers before 1200 are supported
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
# ifdef UNDER_CE
// vc6:
# define BOOST_LIB_TOOLSET "evc4"
# else
// vc6:
# define BOOST_LIB_TOOLSET "vc6"
# endif
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300)
// vc7:
# define BOOST_LIB_TOOLSET "vc7"
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1310)
// vc71:
# define BOOST_LIB_TOOLSET "vc71"
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1400)
// vc80:
# define BOOST_LIB_TOOLSET "vc80"
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1500)
// vc90:
# define BOOST_LIB_TOOLSET "vc90"
#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1600)
// vc10:
# define BOOST_LIB_TOOLSET "vc100"
#elif defined(__BORLANDC__)
// CBuilder 6:
# define BOOST_LIB_TOOLSET "bcb"
#elif defined(__ICL)
// Intel C++, no version number:
# define BOOST_LIB_TOOLSET "iw"
#elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
// Metrowerks CodeWarrior 8.x
# define BOOST_LIB_TOOLSET "cw8"
#elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
// Metrowerks CodeWarrior 9.x
# define BOOST_LIB_TOOLSET "cw9"
#endif
#endif // BOOST_LIB_TOOLSET
Michael
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake