[CMake] How to iterator over a set of directories containing projects?

Alexander Neundorf a.neundorf-work at gmx.net
Tue Jul 14 14:22:54 EDT 2009


On Monday 13 July 2009, Peter wrote:
> I have a bunch (50+) of sample programs deep in the hierarchy of my
> library project. Each of these samples has a similar CMakeLists.txt
> file, like
>
>      add_executable( binning binning.cpp )
>      target_link_libraries( binning ${Boost_LIBRARIES} )
>
> where binning would be the name of the sample as well as the name of the
> directory. I'm wondering if there would be a way to avoid authoring
> these similar CMakeLists.txt files and instead somehow iterate over all
> the projects in the CMakeLists.txt file which is one level higher in the
> hierarchy?

Not sure I understand you correctly.
You could write a macro like this:

macro(add_sample _name)
   add_executable( ${_name} ${_name}/${_name}.cpp)
   ... do whatever more is required
endmacro(add_sample)

and then do in the toplevel project file just:

add_sample(binning)
add_sample(foo)
etc.

Does this help ?

Alex


More information about the CMake mailing list