假设有目录 A
,在目录A
下面有子目录 A1
和 CmakeList.txt
。在子目录 A1
中有 a.c b.c c.c .... z.c
等N个源文件。因为 A1
目录下源文件较多,手动去添加比较麻烦,则可以考虑 CmakeList
自动添加 A1
下面所有的源文件。
目录结构如下:
--A
|____ CmakeList.txt
|____ A1
|_____ a.c
|_____ b.c
|_____ c.c
|_____ z.c
CmakeList.txt
编写如下:
AUX_SOURCE_DIRECTORY(A1 A1_DIR_VAR)
target_sources(${target} PRIVATE ${A1_DIR_VAR})
说明: 通过 AUX_SOURCE_DIRECTORY
将 A1
目录名赋值给变量 A1_DIR_VAR
;target_sources
则按照规则,添加变量 A1_DIR_VAR
目录下所有的源文件。