[CMake] Don't understand simple code
Tyler Roscoe
tyler at cryptio.net
Mon May 11 12:38:10 EDT 2009
On Mon, May 11, 2009 at 09:03:37AM -0700, Denis Scherbakov wrote:
> MACRO(MYTEST argTemp)
> LIST(LENGTH argTemp varLen)
> MESSAGE("Len: ${varLen}")
>
> SET (argTemp "${argTemp}")
>
> LIST(LENGTH argTemp varLen)
> MESSAGE("Len: ${varLen}")
> ENDMACRO ()
>
> MYTEST("something;new")
>
> # prints: 0, 2
>
> Am I referring variables in MACRO correctly? Why second version prints correct length and the first - not?
Not entirely sure, but perhaps this is because (from the macro() docs):
"Note that the parameters to a macro and values such as ARGN are not
variables in the usual CMake sense. They are string replacements much
like the c preprocessor would do with a macro. If you want true CMake
variables you should look at the function command."
tyler
More information about the CMake
mailing list