首次提交
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
|
||||
cmake 传递变量
|
||||
cmake函数只支持传值调用,由于cmake函数可以访问到外部变量,那么通过传入外部变量名称
|
||||
就可以对外部变量进行,赋值,修改。
|
||||
当传入外部变量名称时,使用时要${${out_var_name}} 第一次解引用时获取外部变量名称,第二次解引用是
|
||||
获取外部变量的值
|
||||
而修改时需要 set(${out_list_var_name} "返回的值" PARENT_SCOPE) #一层解引用时获取到外部变量名称
|
||||
|
||||
|
||||
|
||||
1.1 传普通变量
|
||||
1. 传值,传入"${外部变量名}"或${外部变量名},函数内部使用 ${形参名} 获取到传来的值
|
||||
2. 传引用,传入外部变量名, 函数内部使用 ${${形参名}} 获取到传来的值
|
||||
1.2 传列表变量
|
||||
列表变量能和传值一样使用,列表变量传值时(${list_variableName}),会把每一个元素都当成一个函数参数弄到ARGN里,
|
||||
有两种方式
|
||||
1. 传值,传入"${外部列表变量名}", 函数使用 ${形参名}
|
||||
2. 传引用,传入 外部列表变量名, 函数使用${${形参名}}, 第一层解引用获得外部变量名,第二层解引用获得变量值
|
||||
1.3 传引用
|
||||
返回值 set(${out_var_name} "返回的值" PARENT_SCOPE)
|
||||
1.4
|
||||
如果函数内部定义了临时的list列表存储中间状态,由于外部变量函数内部可以访问到,
|
||||
需要set(listName)先置空
|
||||
out_list_var_name 是外部列表变量的名称
|
||||
function(out_list_var_name)
|
||||
使用 ${${out_list_var_name}}
|
||||
返回值 set(${out_list_var_name} "返回的值" PARENT_SCOPE)
|
||||
|
||||
|
||||
变量作用域在 .cmake CMakeLists.txt 传递的区别
|
||||
|
||||
cmake 生成表达式 一定要拿""包起来,不知道什么原因
|
||||
Reference in New Issue
Block a user