CMake - 这个OPTION命令有什么作用?

时间:2014-06-03 13:38:20

标签: syntax cmake

我进入CMake并且遇到了它的语法问题。我想知道你们中是否有人能告诉我以下命令究竟是做什么的:

OPTION(USE_OPENGL "Use OpenGL" FOUND_OPENGL)

据我所知,如果找到,它将默认OPENGL为ON。这是对的吗?

1 个答案:

答案 0 :(得分:1)

此命令为用户提供了一个更改构建系统特定方面的选项。语法在文档中进行了解释:

option(<option_variable> "help string describing option"
                   [initial value])

在您的特定情况下,它将创建一个名为USE_OPENGL的选项,该选项应具有FOUND_OPENGL变量的默认值。因此,默认值可能与自动检查opengl是否可用的结果相同。但是,在您给出的示例中,语法实际上是错误的。它应该是:

OPTION(USE_OPENGL "Use OpenGL" ${FOUND_OPENGL})

通过ccmake命令或cmake gui专门提供选项。在这里,给定的文档字符串将可供用户使用。在用户决定选项之后,您可以使用给定的变量作为第一个参数,就像CMake中的任何其他布尔变量一样。 E.g:

IF(USE_OPENGL)
    MESSAGE(STATUS "Will us OpenGL")
ENDIF()