aux_source_directory

查找目录中的所有源文件。

aux_source_directory(<dir> <variable>)

收集指定目录中所有源文件的名称,并将列表存储在提供的 <变量> 中。此命令旨在供使用显式模板实例化的项目使用。模板实例化文件可以存储在 Templates 子目录中,并使用此命令自动收集,以避免手动列出所有实例化。

人们很容易想使用此命令来避免编写库或可执行目标文件的源文件列表。虽然这似乎可行,但 CMake 无法生成一个知道何时添加了新源文件的构建系统。通常,生成的构建系统知道何时需要重新运行 CMake,因为 CMakeLists.txt 文件被修改以添加新的源文件。当源文件只是添加到目录中而没有修改此文件时,人们将不得不手动重新运行 CMake 以生成包含新文件的构建系统。