在cmake目标的解决方案资源管理器中添加一些源文件的头依赖项

Add some header dependencies of source files to solution explorer for cmake target

本文关键字:源文件 依赖 目标 cmake 解决方案 资源管理器 添加      更新时间:2023-10-16

假设我有a.cpp作为源,并将其添加到cmake目标:

add_executable(MY_TARG a.cpp)

如果a.cpp包括a.h,它将被添加为一个依赖于目标,当我改变头,一切都会得到重建正确,但a.h不会出现在我的项目源列表中(例如在visual studio中)。

有办法把它添加到那里吗?我可以区分系统头(如<vector>)和头从同一目录结构的文件夹?我可能希望只添加包含引号而不包含括号的标题("header.h"而不是<header.h>)

我正在寻找一些自动-我已经有很多CMakeLists.txt文件,只有。cpp文件在那里列出,并通过所有这些似乎不切实际。

这很简单——如果你想让一个文件在IDE中被列为项目的一部分,在CMake中将其列为目标的一部分:

add_executable(MY_TARG a.cpp a.h)

CMake知道它是一个头文件(因此不尝试编译它),但它会在生成的IDE项目中列出它。

编辑

基于寻找对现有系统进行自动更改的附加信息,我认为这并不容易。但它应该仍然是可行的。编译器通常有一种方法列出它们编译的文件所包含的头文件(例如gcc有-MM)。您应该能够基于此输出和您喜欢的文本处理语言构建一个一次性转换脚本。