美文网首页
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