什么可能导致CMake选项不起作用?

时间:2016-03-02 10:33:06

标签: qt cmake option

我正在准备一个应该使用和不使用GUI的应用程序,所以我在我的CMakeLists.txt中使用命令

option (NEED_GUI "Include Qt support"  OFF) 

if (NEED_GUI)
  message("****GUI should be OFF****")
  add_subdirectory(QtGUI)   # The Qt-based graphics routines
endif (NEED_GUI)

尽管我将选项设置为OFF,但我收到了消息,并且构建了库。在哪里寻找错误?

2 个答案:

答案 0 :(得分:4)

将我的评论转化为答案

您的代码看起来不错。所以我假设这里的问题是option()确实通过初始配置步骤将给定值传递到CMakeCache.txt。之后,您只能通过修改NEED_GUI的缓存条目来更改它。在生成构建环境后更改CMakeLists.txt中的选项将不再更新缓存。

<强>参考

答案 1 :(得分:1)

if (NEED_GUI MATCHES ON)

是适当的用法而不是

if (NEED_GUI)