作用域
函数作用域 function scope
即在函数内部定义和使用的变量, 只在当前函数及函数内部调用的子函数可见. 变量查找优先级最高. 函数作用域中会有一份复制的函数所在目录的目录作用域变量.
目录作用域 directory scope
即在目录的 CMakeLists.txt
中定义的变量, 在当前的目录作用域, 里面的函数, 及子目录作用域可见.
在子目录作中域中会有一份复制的父目录作用域变量.
变量查找优先级较高.
set() 修改上一级作用域中的变量
set()
命令默认只修改当前作用域变量, 可以传入 PARENT_SCOPE
参数, 让它修改父作用域中的变量:
set(WIDGETS_FILES
file1,
file2,
file3,
PARENT_SCOPE)