CMake设置变量

时间:2018-11-01 23:06:11

标签: cmake

在以下CMake代码段中,if elseif检查使我感到困惑。我的理解是BL将始终为“ Ei”,因此无需检查其他值。是否存在BL可能被其他东西覆盖的情况?我是CMake的新手,因此需要一些帮助。

movieUrl

1 个答案:

答案 0 :(得分:2)

代码set(BL "Ei" CACHE STRING "library")定义CMake缓存变量。但是,如果FORCE语句中没有set选项,则意味着如果该变量先前在高速缓存中定义,则不会被覆盖。

用户为BL设置不同值的一种方法是在cmake命令行上。例如:cmake ../sourcedir -DBL:STRING=AT

通过在缓存中输入变量类型为STRING(而不是类型INTERNAL),这也使变量可以在cmake-guiccmake中进行配置。 (此外,set_property(... STRINGS ...)指令告诉cmake-gui生成一个包含EiATOp的下拉列表。但是,这不是不需要从命令行设置变量,这就是为什么最好使用默认大小写来表示错误的原因。)

有关更多信息,请参见CMake's documentation for set下的“设置缓存条目”部分。