[CMake] Loop expansion in find_library() seems backwards

Philip Lowman philip at yhbt.com
Wed Sep 8 02:25:10 EDT 2010


Let's say I have many different potential names for a library and the
following filesystem

/usr/lib/libnspr4.so
${CMAKE_CURRENT_SOURCE_DIR}/libnspr4a.so

find_library(TEST_LIBRARY
   NAMES nspr4 nspr4a
   HINTS ${CMAKE_CURRENT_SOURCE_DIR}
)

I'm somewhat surprised that the following code finds /usr/lib/libnspr4.so
instead of the alternate name for it (libnspr4a.so).  This tells me that the
loop is backwards.  Shouldn't the find_library() command be iterating the
list of library names across each directory.  For example, the above should
search:

First ${CMAKE_CURRENT_SOURCE_DIR}...
  ${CMAKE_CURRENT_SOURCE_DIR}/libnspr4.so
  ${CMAKE_CURRENT_SOURCE_DIR}/libnspr4a.so
Then the system directories...
  (system paths)/lib/libnspr4.so
  (system paths)/lib/libnspr4a.so
Etc.

The system is actually searching
${CMAKE_CURRENT_SOURCE_DIR}/libnspr4.so
/usr/lib/libnspr4.so
${CMAKE_CURRENT_SOURCE_DIR}/libnspr4a.so
/usr/lib/libnspr4a.so

This is with CMake 2.8.2

-- 
Philip Lowman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100908/1db89e27/attachment-0001.htm>


More information about the CMake mailing list