【发布时间】:2015-11-13 22:55:35
【问题描述】:
我正在尝试从命令行覆盖 MY_VAR 的默认值,但我得到了意想不到的结果:
摘自我的 CMakeLists.txt:
set( MY_VAR MY_VAR_DEF_VALUE CACHE INTERNAL "This is my_var" [FORCE] )
message( "MY_VAR = ${MY_VAR}" )
cmake 命令:
cmake -DMY_VAR:INTERNAL=MY_VAR_USER_VALUE ..
输出:
MY_VAR = MY_VAR_DEF_VALUE;CACHE;INTERNAL;This is my_var;[FORCE]
我希望输出是:
MY_VAR = MY_VAR_USER_VALUE
奇怪的是 MY_VAR 在 CMakeCache.txt 中正确更新,见摘录:
//No help, variable specified on the command line.
MY_VAR:INTERNAL=MY_VAR_USER_VALUE
注意:我正在做一个源外构建
更新(2015 年 11 月 15 日):
我删除了 FORCE 周围的方括号,输出为:
MY_VAR = MY_VAR_DEF_VALUE
我去掉了 FORCE,输出是:
MY_VAR = MY_VAR_DEF_VALUE
【问题讨论】:
标签: cmake