对于同一文件夹下的多个源文件:
例如,一个项目中由两个源文件(这里是.cc),如下
./ProjectName2 | +--- main.cc | +--- MathFunctions.cc | +--- MathFunctions.h此时,CmakeList.txt的内容则变为
# CMake 最低版本号要求 cmake_minimum_required (VERSION 2.8) # 项目信息 project (ProjectName2) # 指定生成目标 add_executable(ProjectName2 main.cc MathFunctions.cc)这里只有两个源文件,可以把main.cc和MathFunctions.cc一起写在add_executable()中, 但如果有很多源文件,就很鸡肋。
aux_source_directory 就是针对这个问题的方法: 上面的 add_executable (ProjectName2 main.cc MathFunctions.cc) 可以变为 aux_source_directory (<dir> <variable>) 这个命令会查找<dir> 目录下的所有源文件,然后将结果存进<variable>中。
因此CmakeList.txt的内容可改为:
# CMake 最低版本号要求 cmake_minimum_required (VERSION 2.8) # 项目信息 project (ProjectName2) # 查找当前目录下的所有源文件 # 并将名称保存到 DIR_SRCS 变量 aux_source_directory(. DIR_SRCS) # 指定生成目标 add_executable(ProjectName2 ${DIR_SRCS}). 表示当前目录下
reference: hahack–cmake入门实战
