我正在寻找 CMake 中以下函数的解释:
function(file_grab src arg)
file(GLOB_RECURSE ${arg} CONFIGURE_DEPENDS
${src}/*.cc
${src}/*.hpp
)
set(${arg} ${${arg}} PARENT_SCOPE)
endfunction(file_grab)
Run Code Online (Sandbox Code Playgroud)
据我了解,我们使用并递归地获取所有带有和扩展名filesystem的文件并将其设置为变量。我不明白的是*.cc*.hpparg
set(${arg} ${${arg}} PARENT_SCOPE)
Run Code Online (Sandbox Code Playgroud)
我理解第一个参数是设置中变量${${arg}}的任何值。嵌套有什么作用?argPARENT_SCOPE${${arg}}
${${arg}}是嵌套变量引用,请参阅变量引用。
正如文档中所解释的,它是从内到外进行评估的。在您的情况下, 的值${arg}用作变量名并对其自身进行评估。
set(foo "42")
set(arg "foo")
message(STATUS "${${arg}}")
Run Code Online (Sandbox Code Playgroud)
将打印42.
| 归档时间: |
|
| 查看次数: |
449 次 |
| 最近记录: |