cmake:ExternalProject_Add() 不应用 cmake 参数

cmake: ExternalProject_Add() does not apply cmake arguments

本文关键字:cmake 应用 参数 Add ExternalProject      更新时间:2023-10-16

我在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 文档,参数应该禁用构建示例和测试。我只想构建库(目标:glfw(。

如果我尝试单独构建库

cmake -DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF

然后它按预期工作。

我也研究了cmake文档,但我无法进一步。

我做错了什么吗?您可以选择构建或不构建哪个目标吗?

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

CMAKE_ARGS -DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF