
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 生成表达式  一定要拿""包起来，不知道什么原因
