9

我已经在 cmake 下构建了一个大项目。我正在寻找一种方法来获取源文件列表及其依赖的头文件以创建新目标(例如 Emacs 的 etags)。我试图自己找到答案,但似乎并不那么容易。

理想的灵魂应该是这样的:

add_executable(my_project <some list of source files and libraries defined in different directories>)
add_custom_target(tags
  COMMAND etags <list of all *.cpp and *.h files used in 'my_project' target>
  DEPENDS <list of all *.cpp and *h used in 'my_project' target>
  COMMENT "Creates source code tags for Emacs")

您是否知道如何让 'tags' 目标从 'my_project' 目标导入所有依赖项,而无需重写所有目录中的所有 cmake 配置文件?

4

1 回答 1

8

使用命令get_target_property和属性 SOURCES 并最终使用 PUBLIC_HEADER 或 PRIVATE_HEADER?

get_target_property(MY_PROJECT_SOURCES my_project SOURCES)
于 2013-01-09T10:52:57.350 回答