如何自动应用来自的建议,包括您在我的CMake项目中使用的内容? 由于我在CMake使用了以下的内容:我可以在C++项目上运行: set_property(TARGET ${target_name} PROPERTY CXX_INCLUDE_WHAT_YOU_USE ${iwyu_path})

如何自动应用来自的建议,包括您在我的CMake项目中使用的内容? 由于我在CMake使用了以下的内容:我可以在C++项目上运行: set_property(TARGET ${target_name} PROPERTY CXX_INCLUDE_WHAT_YOU_USE ${iwyu_path}),c++,cmake,C++,Cmake,这将输出关于在我的项目上运行cmake--build时要包括哪些内容的建议: Warning: include-what-you-use reported diagnostics: /home/user/hello/main.cc should add these lines: /home/user/hello/main.cc should remove these lines: - #include <vector> // lines 2-2 The full includ

这将输出关于在我的项目上运行
cmake--build
时要包括哪些内容的建议:

Warning: include-what-you-use reported diagnostics:

/home/user/hello/main.cc should add these lines:

/home/user/hello/main.cc should remove these lines:
- #include <vector>  // lines 2-2

The full include-list for /home/user/hello/main.cc:
#include <iostream>  // for operator<<, basic_ostream, cout, endl, ostream

在使用CMake
CXX\u INCLUDE\u WHAT\u USE
属性时,是否有方法自动应用建议?如果没有,是否有一种方法可以将建议应用到我的CMake构建中?

我想到的第一件事是制定一个自定义目标。。。但是我会在这个
CXX\u INCLUDE\u你用什么
上查找文档。据我所知
CXX\u INCLUDE\u你用什么
设置为程序iwyu的路径(以及最终的一些选项)。我的理解是,您仍然需要某种自定义目标来执行您提到的这两行。您可以将其作为
all
目标的一部分,也可以不这样做。在本例中,您将执行类似于
make-kcxx=${CXX\u INCLUDE\u WHAT\u you\u USE}
的操作。也许你可以通过另一种方式实现同样的效果,但我认为使用自定义目标比其他方式更干净……也许吧!然后,您可以使您的标准目标依赖于此目标;因此,您将在构建之前“修复”这些文件。
make -k CXX=/path/to/llvm/Debug+Asserts/bin/include-what-you-use > /tmp/iwyu.out
python fix_includes.py < /tmp/iwyu.out