标签:set CMake 变量 作用域 缓存 variable Scope
Cmake Variable
Variable names are case-sensitive and may consist of almost any text.
- 变量的作用域:
Function Scope
: 在执行一个函数的时候会创建一个新的作用域, 当前作用域中的所有变量会继承到新的作用域.
Directory Scope
: 每个目录也会有自己的变量作用域, 也会继承父目录中的所有变量.
Persistent Scope
: 全局作用域, 放缓存变量(Cache Variable).
变量查找时, 会依次查找函数调用栈和当前目录里的变量, 都没有时才会用缓存变量.
set/unset
- set normal variable
set(<variable> <value>... [PARENT_SCOPE])
cache variable
-
缓存变量, 可以在命令行中设置的变量, 缓存在
CMakeCache.txt
中 -
在CmakeLists.txt中声明缓存变量:
set(<variable> <value>... CACHE <type> <docstring> [FORCE])
If the cache entry does not exist prior to the call or the
FORCE
option is given
then the cache entry will be set to the given value.
只有加了FORCE
才会覆盖已有的
缓存变量的值.
- 在命令行中设置缓存变量:
$ cmake ../ D<var>=<value>
environment variable
set(ENV{<variable>} [<value>])
# invocation:
$ENV{foo}
查看帮助信息:
$ cmake --help-variable-list
$ cmake --help-variable PROJECT_BINARY_DIR
标签:set,CMake,变量,作用域,缓存,variable,Scope 来源: https://www.cnblogs.com/snail-0304/p/16062579.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。