[CMake] Loop expansion in find_library() seems backwards
Michael Hertling
mhertling at online.de
Wed Sep 8 08:56:57 EDT 2010
On 09/08/2010 08:38 AM, Michael Wild wrote:
>
> On 8. Sep, 2010, at 8:25 , Philip Lowman wrote:
>
>> 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
>
> Oh, no! This topic haunts the list [...]
...which shows that 10718 is still alive. ;-)
Hi Philip,
what's your opinion on this topic, in particular
- swapping loops and the required effort, the related risks
and the expected results,
- find modules with hardcoded magic numbers and the continuous
need for maintenance,
- globbing or regex support for FIND_{PROGRAM,LIBRARY,PATH,FILE}?
Regards,
Michael
More information about the CMake
mailing list