[CMake] libraryname decoration

Ryan Pavlik rpavlik at iastate.edu
Fri Jul 30 08:05:00 EDT 2010


  On 7/30/10 6:58 AM, Olaf van der Spek wrote:
> On Fri, Jul 30, 2010 at 1:49 PM, Ryan Pavlik<rpavlik at iastate.edu>  wrote:
>> And, if you ask any auto*-using developer how they feel about detecting and
>> configuring boost, prepare for some impolite words.  Even the cmake module
>> for detecting it is complex.
>>
>> (and auto-linking appears to only work on windows with MSVC, and I'm not
>> prepared to let #pragma comment(lib, "mylib.lib") surrounded by ifdefs sneak
>> into my source code.)
> It's a shame gcc doesn't support it yet. I would love to see support there.
>
> Olaf
The issue conceptually for me here, is that the code shouldn't/doesn't 
necessarily know what exact library name to link against - think 
different versions of libraries, different platforms... What ends up 
happening in projects that rely on those kinds of constructs, is your 
config system ends up having to configure a file specifying the library 
names for the pragmas to work, which ends up being more hassle than just 
handling linking entirely within the build system.  (Plus, then you get 
the whole "I know exactly what my project links against and uses" benefit.)

I use boost a lot.  I've only used its auto-linking by accident, when it 
guesses the wrong decorated name or wrong location for my platform, at 
which point I realize I missed a library in my build system.  It ends up 
being a slightly more convenient "unresolved symbols" error.

Ryan

-- 
Ryan Pavlik
Human-Computer Interaction Graduate Student
Virtual Reality Applications Center
Iowa State University

rpavlik at iastate.edu
http://academic.cleardefinition.com/



More information about the CMake mailing list