【发布时间】:2014-12-08 02:36:42
【问题描述】:
假设我在 CMake 中有一个选项“ENABLE_Foo”:
option(ENABLE_Foo "Tell cmake to enable the package Foo" ON)
我想检测用户是否指定了-DENABLE_Foo=ON或-DENABLE_Foo=OFF,或者是否正在使用指定的初始值ON。
我想告诉用户是打开选项还是默认打开的原因是因为 Foo 需要额外的包,我想涵盖这些情况:
1) 用户没有为选项 ENABLE_Foo 指定值:
a) 找到包 Foo -> 使用 Foo
b) 未找到包 Foo -> 静默关闭 Foo
2) 用户为选项ENABLE_Foo 指定了一个值:
a) 用户说-DENABLE_Foo=ON:
i) 找到包 Foo -> 使用 Foo
ii) 未找到包 Foo -> 致命错误消息
b) 用户说-DENABLE_Foo=OFF -> 不要使用 Foo 也不要试图找到它
如果无法判断选项值是来自用户输入还是来自初始值,是否还有其他方法可以实现我上面概述的内容?
【问题讨论】:
标签: cmake