Hi,
I've (force) pushed the join-genex branch to my clone. It implements the
generator expression
$<JOIN:list,sep>
such that the result is
sep<element1>sep<element2>...sep<elementN>
This is part of the work to make it possible to refer to properties of
targets before the target is defined:
qt4_generate_moc(
${input_file}
${moc_file}
TARGET foo # Use the includes and defines from foo
)
add_executable(foo ${input_file} ${moc_file})
target_link_libraries(foo Qt5::Widgets)
The implementation of qt4_generate_moc would be updated to do something like
-I$<JOIN:$<TARGET_PROP:${target},INCLUDE_DIRECTORIES>,-I>
to generate the -I arguments to pass to moc.
A $<UNIQ:list> generator expression could also be added to solve the issue
in
http://public.kitware.com/Bug/view.php?id=14094
The $<JOIN> branch is almost ready, but I thought something worth bringing
up is the use of a comma as a separator. Because the comma is a part of the
genex syntax, the $<COMMA> expression must be used:
$<JOIN:one;two;three,$<COMMA>> # results in one,two,three
For the $<1:...> generator expression, the comma is unambiguously allowed in
the '...' section because we know there is only one parameter. Similarly,
for $<JOIN:list,sep> I could allow the sep to be 'arbitrary content' by
considering the first comma to be a genex syntax, and all following commas
to be part of the separator.
$<JOIN:one;two;three,,> # results in one,two,three
Do you think that's more or less confusing? Should I implement it?
Thanks,
Steve.
--
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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers