[CMake] How to iterator over a set of directories containing projects?
Peter
p.schregle at impuls-imaging.com
Tue Jul 14 15:36:23 EDT 2009
Am 14.07.2009 20:22, schrieb Alexander Neundorf:
> 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
>
>
I finally did this:
set ( samples
sample1
...
samplen
)
foreach ( proj ${samples} )
add_executable ( ${proj} ${proj}/${proj}.cpp )
target_link_libraries( ${proj} ${Boost_LIBRARIES} )
endforeach ()
This works fine.
The macro approach would work too, I guess, thanks.
Peter
More information about the CMake
mailing list