add_custom_command and variable arguments

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

add_custom_command and variable arguments

Roman Savchenko
HI All,

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?

Many thanks,
R. Savchenko.

--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: add_custom_command and variable arguments

Nils Gladitz-2
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
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake