cmake set子目录选项

时间:2013-11-27 10:04:33

标签: cmake

是否有设置子目录的选项?

所以我有一个依赖于子项目的项目,子项目有一个选项: 选项(WITH_FUNCTION_X“启用X功能”开启)

在我的父项目中,我想要包含子项目,但没有功能X。

谢谢!

1 个答案:

答案 0 :(得分:24)

CMake的option命令或多或少地向缓存添加一个布尔变量。

如果要覆盖选项的默认值,只需在拉入子项目之前自己将相同名称的变量添加到缓存中:

set(WITH_FUNCTION_X OFF CACHE BOOL "enable X functionality")
add_subdirectory(subproject)

请注意,如果缓存中已存在该名称的值,则set命令不执行任何操作。如果要覆盖任何现有值,请将FORCE选项添加到该命令。

FORCE

示例
set(WITH_FUNCTION_X OFF CACHE BOOL "enable X functionality" FORCE)
add_subdirectory(subproject)