我想创建一个CMake函数为:

function(test src_list dst_list)
# do something
endfunction()
用法:
test(${my_list} chg_list)
这意味着,my_list是具有多个字段的列表,并且chg_list将收到在测试函数内部修改的列表。
我如何在CMake中创建一个函数来做到这一点?

最佳答案

在CMake中,函数具有自己的作用域,并且默认情况下,所有变量的修改都是局部的,除非您将CACHEPARENT_SCOPE作为参数传递给set。在函数内部,如果要在调用方范围内修改变量,则应使用:

set(${dst_list} <something> PARENT_SCOPE)

参见documentation:

关于function - 使用OUT参数从函数返回列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22487215/

10-14 16:07
查看更多