5

我将如何拥有一个 CMake 构建系统,它现在使用AUX_SOURCE_DIRECTORY扫描源文件,也在同一目录中扫描头文件,最好使用类似的命令?

我还没有在文档中找到一个简单的方法来做到这一点,所以我现在有一个糟糕的 bash 脚本来后处理我的(CodeBlocks)项目文件......

4

2 回答 2

13

您可以使用 file(GLOB ... ) 命令。例如:

set(dir my_search_dir)
file (GLOB headers "${dir}/*.h")
message("My headers: " ${headers})

此命令还可以递归并列出相对于给定路径的文件。请参阅 cmake 文档中的“文件”命令条目

于 2008-11-21T16:57:08.613 回答
-1

AUX_SOURCE_DIRECTORY 的文档表明它不打算以这种方式使用,所以我宁愿怀疑你所问的是否可能。如果您想要一个权威的答案,您可以通过 cmake@cmake.org 联系 CMake 开发人员(他们实际上非常好相处)。

我强烈建议不要使用通配符来指定构建中包含的内容。构建文件应该指定库的确切内容,而不是依赖于目录中发生的情况。一开始它可能很麻烦(如果你习惯了通配符,或者工作方式相同的 IDE),但是当你习惯它时,你不希望有任何其他方式。

于 2008-11-15T23:10:32.760 回答