On Thu 04 Jun 21:15 2009 Bill Hoffman wrote: > e...@cs.bgu.ac.il wrote: > > On Thu 04 Jun 20:31 2009 Bill Hoffman wrote: > >> e...@cs.bgu.ac.il wrote: > >>> On Thu 04 Jun 20:16 2009 Tyler Roscoe wrote: > >>>> On Thu, Jun 04, 2009 at 07:50:08PM +0300, e...@cs.bgu.ac.il wrote: > >>>>> SET(LIBS AR ARMulti ARvideo) > >>>>> FOREACH (LIB ${LIBS}) > >>>>> SET(FOUND_LIB) > >>>>> FIND_LIBRARY(LIB_FOUND ${LIB} /usr/lib /usr/local/lib) > >>>>> SET(ARTK_LIBRARY ${ARTK_LIBRARY} ${LIB_FOUND}) > >>>>> ENDFOREACH(LIB) > >>>>> > >>>>> the result is /usr/lib64/libAR.a/usr/lib64/libAR.a/usr/lib64/libAR.a > >>>>> when it should be /usr/lib64/libAR.a /usr/lib64/libARMulti.a > >>>>> /usr/lib64/libARvideo.a > >>>> What's up with set(FOUND_LIB)? > >>>> > >>>> You might be running into a quoting/list expansion problem. Try: > >>>> SET(ARTK_LIBRARY "${ARTK_LIBRARY}" "${LIB_FOUND}") > >>>> > >>>> or use list(APPEND ...) instead. > >>>> > >>>> tyler > >>>> > >>> apparently, FOUND_LIB isn't being cleaned in each loop, that is for > >>> cleaning. > >>> my problem is that the loop finds only the first lib's file but not the > >>> rest, look at the output result that I've posted. > >>> > >> Look at the docs for FIND_LIBRARY: > >> http://www.cmake.org/cmake/help/cmake2.6docs.html#command:find_library > >> > >> > >> "A cache entry named by <VAR> is created to store the result of this > >> command. If the library is found the result is stored in the variable > >> and the search will not be repeated unless the variable is cleared. If > >> nothing is found, the result will be <VAR>-NOTFOUND, and the search will > >> be attempted again the next time find_library is invoked with the same > >> variable." > >> > >> -Bill > >> > > ${FOUND_LIB-NOTFOUND} is empty in every iteration > > > > > Sure, because it is FOUND... Once it finds it it does not look for it > again. If not CMake would try to find stuff every time it runs. As the > above paragraph says: "search will not be repeated unless the variable > is cleared" > > So, you either need to do a cache force to clear it, or you need to use > a different variable for each find_library. > > -Bill > ok, I've understand the problem, I'm trying to clear the var using SET(FOUND_LIB) but it doesn't seem to work, how can I clear the variable?
_______________________________________________ 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://www.cmake.org/mailman/listinfo/cmake