cmake:ExternalProject_Add()不应用cmake参数

时间:2018-10-01 13:31:12

标签: c++ gcc makefile cmake

在我的cmake文件中构建外部库(glfw)时遇到麻烦:

[...]

ExternalProject_Add(glfw
    PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/glfw"
    URL "https://github.com/glfw/glfw/releases/download/3.2.1/glfw-3.2.1.zip"
    URL_HASH SHA256=b7d55e13e07095119e7d5f6792586dd0849c9fcdd867d49a4a5ac31f982f7326
    CMAKE_ARGS "-DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF"
    INSTALL_COMMAND ""
    TEST_COMMAND ""
)

add_executable(test main.cpp)
add_dependencies(test glfw)

尽管这很好用,但是给定的cmake参数-DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF被忽略了。

根据glfw documentation,参数应禁用构建示例和测试。我只想构建该库(目标:glfw)。

如果我尝试单独构建库

cmake -DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF

然后按预期运行。

我也研究了cmake documentation,但我再也无法掌握了。

我做错什么了吗?您能否选择要建立的目标?

1 个答案:

答案 0 :(得分:2)

参数CMAKE_ARGS包含选项的列表,而不是带有以空格分隔的选项的单个字符串。正确:

CMAKE_ARGS -DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF