function - 使用 OUT 参数从函数返回一个列表

标签 function cmake

我想创建一个 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 :

A function opens a new scope: see set(var PARENT_SCOPE) for details.

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

相关文章:

c - 这两个指针有何不同?

build - 带有 set_target_properties 的 FindPkgConfig 无法用于设置 CFLAGS/LDFLAGS

c++ - 使用 MingW 在 Windows 上为 c++11 代码调整 cmake 构建系统

windows - 从 CMake/PkgConfig 为 pkg-config 提供选项 --define-variable

cmake - 将ExternalProject 下载步骤与Ninja 一起使用

android - 无法为不是由该项目构建的目标指定链接库

javascript - 函数声明和函数表达式可以互换使用吗?

c++ - 从 C++ 中的函数输出多个值

python - Tkinter 按钮命令函数不执行其任务

c++ - 在 C++ 中为字符串创建自定义函数