我想创建一个CMake函数为:
function(test src_list dst_list)
# do something
endfunction()
用法:test(${my_list} chg_list)
这意味着,my_list
是具有多个字段的列表,并且chg_list
将收到在测试函数内部修改的列表。我如何在CMake中创建一个函数来做到这一点?
最佳答案
在CMake中,函数具有自己的作用域,并且默认情况下,所有变量的修改都是局部的,除非您将CACHE
或PARENT_SCOPE
作为参数传递给set
。在函数内部,如果要在调用方范围内修改变量,则应使用:
set(${dst_list} <something> PARENT_SCOPE)
参见documentation:
关于function - 使用OUT参数从函数返回列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22487215/