[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