[CMake] add_custom_command and variable arguments

Nils Gladitz nilsgladitz at gmail.com
Tue Jun 9 08:07:27 EDT 2015


On 06/09/2015 01:40 PM, Roman Savchenko wrote:
> I whant to add custom command in such way:
>
> add_custom_target(my_target)
> add_custom_command(TARGET my_target POST_BUILD COMMAND script ${LIST})
>
> set(LIST "")
>
> function(add_to_target source)
>      add_executable(source ${source})
>      add_dependency(my_target ${source})
>      list(APPEND LIST ${source})
> endfunction()
>
> add_to_target(s1.c)
> add_to_target(s2.c)
>
> But list is empty. How can I do it poperly?

CMake functions have their own variable scope.
To set a variable in the parent (calling) scope use set() with the 
PARENT_SCOPE flag.

Alternatively use a macro instead of a function.
Macros don't have their own variable scope.

Nils


More information about the CMake mailing list