I would like to create a cmake function as:
function(test src_list dst_list)
# do something
endfunction()
usage:
test(${my_list} chg_list)
It means, my_list is a list with several fields, and chg_list will receive a list modified inside test function.
But it is not working, how can I create a function in cmake to do that?
Check that inside your function you are
set()
ing notdst_list
but${dst_list}
. You need this to return data to the parent scope.In CMake, functions have their own scope, and by default, all modification of variables are local, unless you pass
CACHE
orPARENT_SCOPE
as parameter toset
. Inside a function, if you want to modify a variable in the scope of the caller, you should use:See documentation: