对于同一文件夹下的多个源文件:
例如,一个项目中由两个源文件(这里是.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入门实战