You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CMakeLists.txt中获取依赖但不构建其测试与示例?

解决方案

完全可以实现这个需求,只需要在拉取并配置依赖前,通过设置CMake缓存变量来禁用测试和示例的构建。修改你的deps/CMakeLists.txt如下:

include(FetchContent)

FetchContent_Declare(
   arsenalgear
   GIT_REPOSITORY "https://github.com/JustWhit3/arsenalgear-cpp"
   GIT_TAG main
)

# 禁用arsenalgear的测试与示例构建
set(BUILD_TESTING OFF CACHE BOOL "Disable arsenalgear tests")
set(BUILD_EXAMPLES OFF CACHE BOOL "Disable arsenalgear examples")

message( STATUS "Fetching arsenalgear..." )
FetchContent_MakeAvailable( arsenalgear )

原理说明:

大多数用CMake管理的开源库都会提供标准化的开关变量,比如BUILD_TESTING(CMake官方CTest模块默认使用的测试开关)、BUILD_EXAMPLES(示例代码构建开关)。在调用FetchContent_MakeAvailable前设置这些变量并写入CMake缓存,当CMake配置arsenalgear项目时,会读取这些变量值,自动跳过测试和示例的构建流程,只编译库核心代码并执行安装相关逻辑。

如果上述变量名不生效,你可以查看arsenalgear仓库的根目录CMakeLists.txt,找到控制测试、示例构建的具体变量名,替换掉代码中对应的变量即可。

内容的提问来源于stack exchange,提问作者Gianluca Bianco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 11:45:26