On 09/28/2011 07:47 AM, Clifford Yapp wrote: > > > On Wed, Sep 28, 2011 at 12:13 AM, Michael Wild <them...@gmail.com > <mailto:them...@gmail.com>> wrote: > > On 09/28/2011 02:44 AM, Clifford Yapp wrote: > > I've run into a situation where find_library is returning a symlink: > > > > /usr/lib/libblah.so -> libblah.so.1 > > > > but libblah.so.1 does not actually exist (e.g. the symlink is bad). > > > > Is there an option I can set to have find_library ensure that a found > > library file is valid and links? > > > > Cheers, > > CY > > > > Yes, but you need to do it yourself, e.g. use the CheckFunctionExists > module. > > Michael > > > Urm. That's surprising, and not so hot in that it leads to "false > positives" in find_library reports. Has anyone wrapped find_library > with a generic linking test successfully? > > CY
Only if your installation is broken ;-) If the symlink is broken, I consider this to be a user-error. Period. OTOH, CMake /could/ check whether the library is a symlink, and if it is, check that it is valid. But how do you test whether a library is "linkable"? Specifically, I'm thinking about static libraries. First, only referenced symbols are linked, so that's kind of difficult to handle as CMake would need to know at least one symbol name to force the library to be linked at all, secondly static libraries may have transitive dependencies which CMake doesn't know about, so it's not possible to link an executable. On Unix you could create a shared library for the link test, but that depends on the linker flags being used, and on Windows you can't, since DLL's may not contain unresolved symbols. I don't think that there is any good way to handle this in find_library(). 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