On 14/11/13 20:39, Brad King wrote:
> On 11/14/2013 12:09 PM, Daniele E. Domenichelli wrote:
>> Is this a wanted behaviour? If it is, perhaps it should be documented in
>> macro() command documentation.
>
> The "macro" command documentation says:
>
> http://www.cmake.org/cmake/help/v2.8.12/cmake.html#command:macro
> Note that the parameters to a macro ... are not variables
>
> The "if" command documentation says:
>
> http://www.cmake.org/cmake/help/v2.8.12/cmake.html#command:if
> Note macro arguments are not variables.
Ok there is some documentation, but perhaps it is not very clear what
you cannot do with a macro parameter:
* it's not a variable but it isn't either a list (the list()
documentation says "A list in cmake is a ; separated group of strings",
and doesn't mention macro arguments). Therefore you cannot use the
list() command.
* foreach(IN LISTS), does not mention that it won't work with macro
parameters.
* The if() command mentions that in the documentation of the if(var)
form, but not in the if(DEFINED var).
Also the problem that gave me more issues is that I was using ARGN like
this:
macro(_BAR)
foreach(arg IN LISTS ARGN)
[...]
endforeach()
endmacro()
function(_FOO)
_bar(x y z)
endfunction()
_foo(a b c)
And it took a lot of time to realize that I was using the list from the
current scope, not from the macro.
So I believe that some more documentation would be helpful... If you
agree, I can write it...
Cheers,
Daniele
--
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