我想将所有标题添加到 cmake 项目中。用例是我会得到这个标题列表并在它们上调用一些自定义验证。我真的很希望这是一种查询机制,以减轻监督错误。
我对 globbing 文件系统不感兴趣,因为可能存在不适用于每个平台的标头。这也很糟糕。
这就是我希望使用的样子。
add_library(example_lib
foo.h
foo.cpp
bar.h
bar.cpp
)
add_executable(example main_example.cpp)
target_link_libraries(example example_lib)
# this is the feature I am interested in
get_target_headers(example_header example)
# alternatively
get_target_headers(example_header example example_lib)
do_custom_thing("${example_header}")
一种更手动的方法如下所示。我只是重用example_header
变量来进行自定义验证。
set(example_header
foo.h
bar.h
)
set(example_source
foo.cpp
bar.cpp
)
add_library(example_lib
${example_header}
${example_source}
)
add_executable(example main_example.cpp)
target_link_libraries(example example_lib)
do_custom_thing("${example_header}")
这就是我现在正在做的事情并且它有效,我只是想知道是否有更好的方法。