CMake:如果第二次运行未提供,则使用默认值

时间:2019-07-08 14:46:53

标签: cmake

第一次运行时:cmake .. \ test2 -DABC = abc 我有输出:ABC = abc 没关系,但是当我第二次运行时:cmake .. \ test2没有附加参数,我仍然有ABC = abc。我没有删除任何输出文件。 如果下一次运行时提供了参数,则可以强制cmake使用参数的默认值(OFF)吗?

if(ABC)
    message(STATUS "abc is set")
else()
    message(STATUS "abc is not set")
endif()

不起作用

CMakeList.txt:

option(ABC "test" )
message(STATUS "ABC=${ABC}")

1 个答案:

答案 0 :(得分:1)

  

是否可以强制CMake使用参数的默认值(OFF)?

是的,只需设置缓存变量,可以使用-U选项完成

cmake ..\test2 -UABC

因此option()发现未设置的变量,并为其分配了默认值


在CMake中,不使用-D的意思是“不要更改变量”,而不是“根本不设置变量”。