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

能否在CMake项目中添加非目标全局文件至CMake文件夹?

如何在CMake中添加不绑定任何目标的全局文件

标准解决方案:自定义目标+文件夹属性

你提到的自定义目标并非权宜之计,而是CMake官方认可的标准实现方式,完全能满足你的需求:

  • 创建一个无实际执行操作的自定义目标,将全局文件关联到该目标下
  • 通过FOLDER属性将这个目标归类到指定目录,在IDE项目树中独立展示,不依附任何业务目标

示例代码

# 定义需要展示的全局文件列表
set(GLOBAL_DOC_FILES
    docs/requirements.md
    docs/design_spec.pdf
    README.md
)

# 创建空的自定义目标,仅用于在IDE中展示文件
add_custom_target(GlobalFiles ALL
    SOURCES ${GLOBAL_DOC_FILES}
)

# 设置目标的文件夹属性,让IDE将其归类到指定分组
set_target_properties(GlobalFiles PROPERTIES
    FOLDER "Project Documents"
)

其他方法无效的原因

CMake的核心逻辑围绕目标构建,所有需要在IDE项目树中显示的文件必须关联到某个目标。set_property()或set_source_files_properties()仅能修改已绑定目标的文件属性,无法让未关联目标的文件出现在IDE视图中。

额外优化技巧

  • 若不想让自定义目标参与默认构建流程,可移除ALL关键字,这样该目标不会被默认构建触发(由于目标本身无执行操作,实际影响很小)
  • 可配合source_group在自定义目标下对文件做进一步分组,让结构更清晰:
source_group("需求文档" FILES docs/requirements.md)
source_group("设计规范" FILES docs/design_spec.pdf)
source_group("根目录文件" FILES README.md)

内容的提问来源于stack exchange,提问作者Peter - Reinstate Monica

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 03:40:54