> 2012/2/15 Rolf Eike Beer <[email protected]>: >> Hi, >> >> as I found out today this construct doesn't work: >> >> find_library(MYLIB libfoo.so.2) >> >> This is because find_library will only try to access the whole path if >> the >> given name matches PREFIX.*SUFFIX, which is obviously not the case here. >> My >> simple approach on fixing this would be to also allow >> PREFIX.*SUFFIX\..*: > > [...] >> @@ -358,9 +358,17 @@ bool >> cmFindLibraryHelper::HasValidSuffix(std::string const& name) > > [...] >> Any objections? > > If the user does not trust find_library for checking proper extension > then: > 1) He could modify/append CMAKE_FIND_LIBRARY_SUFFIXES > in this case: > list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES ".so.2") > should work. > > 2) He could use find_file > > Now if we consider this is a bug, > then with your modification "HasValidSuffix" is ill-named since it is more > like > "ContainsValidSuffix" or "MatchesValidSuffix". > > With this modification one could now find a not-properly-installed > library (missing links) without noticing it.
Yes, but only if he explicitely specifies the correct name. It's not that find_library will now find libfoo.so.2 now when you do find_library(VAR foo). > What is your purpose here, do you want to ensure that you find a > particular version of a lib? FindPerlLibs.cmake queries perl for the perl library name, which is e.g. "libperl.so.5.12.4" on my machine. And find_library is not able to find a library given that name, even if it is perfectly valid. With this modification is is able to get that. Eike -- 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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
