主目录下的CMakeLists
project(project_name)//添加工程
ADD_SUBDIRECTORY(subdirectory) //添加子目录
AUX_SOURCE_DIRECTORY(. DIR_SRCS)//将主目录下的源文件打包
#add_executable(project_name test1.c test2.c test3.c}) //如果不打包需要讲源文件一个一个添加到可执行文件
add_executable(project_name ${DIR_SRCS})//如果已经打包,可将源文件一次性添加到可执行文件
TARGET_LINK_LIBRARIES(project_name lib_name -lm pthread//此处可添加一些额外的库,防止编译出错)//添加子目录下的静态链接库
install(TARGETS project_name RUNTIME DESTINATION bin)
子目录下的CMakeLists
SET(SOURCE_FILES lib1.c lib2.c lib3.c) #设置变量,表示所有的源文件
ADD_LIBRARY(lib_name ${SOURCE_FILES}) #生成静态链接库lib_name.a
TARGET_LINK_LIBRARIES(lib_name) #依赖的库文件