On 02/10/2011 04:00 PM, David Cole wrote: > On Thu, Feb 10, 2011 at 8:01 AM, Michael Wild <them...@gmail.com> wrote: > >> On 02/10/2011 01:52 PM, David Cole wrote: >>> On Thu, Feb 10, 2011 at 2:50 AM, Robert Bielik <robert.bie...@xponaut.se >>> wrote: >>> Michael Wild skrev 2011-02-09 16:48: >>> >>>> >>>> what about this: >>>>> >>>>> file(GLOB_RECURSE glob_results "/some/pattern*") >>>>> set(dirs) >>>>> foreach(f IN LISTS glob_results) >>>>> get_filename_component(d "${f}" PATH) >>>>> list(APPEND dirs "${d}") >>>>> endforeach() >>>>> list(REMOVE_DUPLICATES dirs) >>>>> >>>> >>>> Yeah, works fine but it seems to be a lot slower than using the nested >>>> file(GLOB...) macro approach, but I don't know why. >>>> >>> >>> >>> Probably because there are thousands of files, but only tens of >> directories. >>> Bang! 100x slower. >>> >> >> But the other macro also touches every file and directory and is even >> recursive. I think the real cost is in the list(REMOVE_DUPLICATES) call. >> > > > Absolutely. But the number of elements in that list will be the number of > files encountered in the full recursive glob, which is probably much larger > than the number of elements conditionally added to the list involved in the > macro approach. >
Correct, that's what I was getting at. _______________________________________________ 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