美文网首页
cmake - local variable 以及cache v

cmake - local variable 以及cache v

作者: 老杜振熙 | 来源:发表于2021-04-20 18:11 被阅读0次

关于local variable

通过set命令设置需要的local variable;
通过list命令可以对list变量执行多种形式的操作;
通过${MY_VARIABLE}来使用对应的变量;注意,如果MY_VARIABLE包含空格,那么必须加上双引号"${MY_VARIABLE}"

  • list变量在cmake中就是通过;分隔的字符串,比如set(MY_VARIABLE "a" "b" "c"),那么MY_VARIABLE的值就是"a;b;c"

关于cache variable

所谓的cache variable,其实就是可以在命令行中进行设置的变量,比如CMAKE_BUILD_TYPE
通过set(MY_CACHE_VARIABLE "VALUE" CACHE STRING "Description")来声明并设置所需的cache variable;

  • 注意,cache variable存在的本意是为了使开发人员做出最好的环境配置,而这个配置过程可能会比较反复,因此又引出了一个CMakeCache.txt的概念,这个文件就是保存好先前的配置,并且如果命令行有了配置修改,那么CMakeCache.txt也需要进行更新;有了CMakeCache.txt的好处就是,不用每次运行cmake的时候都写下全部的配置选项,因为已经被记在CMakeCache.txt里面了;
  • 因为配置过程的反复,因此可能会多次运行cmake,而为了不让CMakeLists.txt中的set(... CACHE STRING ...)覆盖之前已有的配置,因此CMAKE默认设置是:set(... CACHE STRING ...)不会覆盖已有的cache variable;
  • 强制更改cache variable的命令是:set(MY_CACHE_VARIABLE "VALUE" CACHE STRING "" FORCE)
  • 通过option(MY_OPTION "This is settable from the command line" OFF)可以设置bool型的cache variable;

ref

Variables explained – More Modern CMake (hsf-training.github.io)

相关文章

网友评论

      本文标题:cmake - local variable 以及cache v

      本文链接:https://www.haomeiwen.com/subject/hnvnlltx.html