我正在编写项目的CMakeLists.txt文件。我的项目依赖于外部依赖项GLFW,对我来说幸运的是,GLFW也使用CMake作为其构建系统。我使用find_package()和git子模块来处理依赖项管理,目前我的CMakeLists.txt文件是这样的:
# CMake version
cmake_minimum_required(VERSION 3.0)
# project name
project(CHIP-8)
# dependency management
find_package(OpenGL REQUIRED)
find_package(glfw)
if(NOT glfw)
message("Unable to locate glfw.")
message("Cloning the repository.")
execute_process(
COMMAND
git submodule update --init -- libs
WORKING_DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}
)
message("Building glfw.")
add_subdirectory(libs/glfw)
endif()根据我对CMake的有限理解,add_subdirectory(libs/glfw)命令在最近克隆的glfw子模块上运行CMake。问题是很多不必要的特性是GLFW默认构建的一部分,例如示例、单元测试和文档。
documentation for compiling GLFW列出了用于禁用这些功能的CMake选项GLFW_BUILD_EXAMPLES、GLFW_BUILD_TESTS和GLFW_BUILD_DOCS。
我有两个问题,第一个问题是如何指定这些选项,第二个问题是我为find_package准确性传递的参数(我确实在我的系统上安装了GLFW,但每次构建它时仍然试图克隆和构建存储库)。
发布于 2018-08-27 05:17:33
在similar question中找到了我的答案。我所要做的就是添加:
option(GLFW_BUILD_EXAMPLES OFF)
option(GLFW_BUILD_TESTS OFF)
option(GLFW_BUILD_DOCS OFF)就在add_subdirectory(libs/glfw)之前。
https://stackoverflow.com/questions/52030193
复制相似问题