以下两个之间有什么区别吗?
set(FOO true CACHE BOOL "description")
option(FOO "description" ON)
背景:即使我已经使用CMake一段时间了,我今天只注意到option
命令,因此我一直在使用set
:我想知道用第二个替换第一个是否安全/值得。
在您的示例中,没有区别。但可能存在差异:
Option
的默认值为OFF
。CMakeDependentOption
创建一个取决于其他选项的选项Set
接受BOOL
以外的类型,尤其是;-lists。此外,当您使用选项时,您向用户指示可以安全地设置它。从外部设置内部变量可能会使用无效值巧妙地破坏脚本。