需求

编写跨平台的工程时,因为项目比较大,文件很多,开发人员很多,不想一一列举add_executable里边的文件

解决

FILE宏获取某个指定目录下的同一类型的所有文件,用DIAGNOSTICSERIALIZE两个变量来分别存储所有符合条件的文件名,include_directories也可以自动包含目录下的所有头文件

1
2
3
4
5
FILE(GLOB_RECURSE DIAGNOSTIC ${CMAKE_SOURCE_DIR}/diagnostic/*.c)
include_directories(${CMAKE_SOURCE_DIR}/diagnostic)

FILE(GLOB_RECURSE SERIALIZE ${CMAKE_SOURCE_DIR}/serialize/*.c)
include_directories(${CMAKE_SOURCE_DIR}/serialize)

再在add_executable里边添加DIAGNOSTICSERIALIZE两个变量,这样新增文件只要执行一下cmake就可以了

1
2
3
4
5
6
7
add_executable(zhd-desktop
main.c
${DIAGNOSTIC}
${SERIALIZE}
logo.rc
res.qrc
)

© 2025 hywing 使用 Stellar 创建
总访问 113701 次 | 本页访问 326