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.

What is your purpose here, do you want to ensure that you find a
particular version of a lib?


-- 
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org
--

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

Reply via email to