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\..*:
diff --git a/Source/cmFindLibraryCommand.cxx b/Source/cmFindLibraryCommand.cxx
index 2fa2cca..da7650a 100644
--- a/Source/cmFindLibraryCommand.cxx
+++ b/Source/cmFindLibraryCommand.cxx
@@ -358,9 +358,17 @@ bool cmFindLibraryHelper::HasValidSuffix(std::string
const& name)
for(std::vector<std::string>::const_iterator si = this->Suffixes.begin();
si != this->Suffixes.end(); ++si)
{
- std::string const& suffix = *si;
- if(name.length() > suffix.length() &&
- name.substr(name.size()-suffix.length()) == suffix)
+ std::string suffix = *si;
+ if(name.length() <= suffix.length())
+ {
+ continue;
+ }
+ if(name.substr(name.size()-suffix.length()) == suffix)
+ {
+ return true;
+ }
+ suffix += ".";
+ if(name.find(suffix) != name.npos)
{
return true;
}
Any objections?
signature.asc
Description: This is a digitally signed message part.
-- 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
