FetchContent官方文档仅为概述,求完整选项参考文档
FetchContent 未文档化Git选项参考
背景
FetchContent的官方文档仅为概述,执行cmake --help-module FetchContent得到的内容和官方文档一致,找不到GIT_SHALLOW、GIT_PROGRESS这类选项的说明。
核心原理
FetchContent底层依赖CMake的ExternalProject模块实现,所有以GIT_开头的选项都会直接传递给ExternalProject_Add,这些选项并未在FetchContent的文档中单独列出,而是复用ExternalProject的Git相关配置。
常见未文档化选项说明
GIT_SHALLOW TRUE:开启浅克隆模式,只拉取指定GIT_TAG对应的单一提交,而非整个仓库的完整历史。能显著降低克隆时间和磁盘占用,但仅适用于GIT_TAG为具体提交哈希或固定标签的场景,分支标签无法使用该选项。GIT_PROGRESS TRUE:在克隆过程中显示实时进度条,方便跟踪大仓库的克隆状态。
更多可用Git选项
所有ExternalProject_Add支持的GIT_*参数都可在FetchContent_Declare中使用,举例:
GIT_SUBMODULES "":跳过仓库子模块的克隆GIT_REMOTE_NAME upstream:自定义远程仓库的名称GIT_SSL_NO_VERIFY TRUE:禁用SSL证书验证(仅限测试环境,不推荐生产使用)
验证方式
如果不确定某个GIT_*选项是否支持,可直接在FetchContent_Declare中尝试使用,CMake会在选项不合法时抛出明确错误;也可以查阅ExternalProject模块的官方文档获取完整参数列表。
内容的提问来源于stack exchange,提问作者user1785730
相关产品推荐
相关产品推荐

