我想创建一个 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 :
A function opens a new scope: see set(var PARENT_SCOPE) for details.
关于function - 使用 OUT 参数从函数返回一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22487215/