cmake 打印变量内容和其他信息:
message 语句

循环输出数组变量foreach
#aux_source_directory(./include DIR_HEADS) #aux_source_directory 命令只是用来查找源文件,对头文件无效
file(GLOB DIR_HEADS "include/*.h" "include/*.hpp")
aux_source_directory(./src DIR_SRCS)
# 循环输出
foreach(_var ${DIR_HEADS})
message("头文件:${_var} \n")
endforeach()
foreach(_var ${DIR_SRCS})
message("源文件:${_var} \n")
endforeach()
工程目录示例:
根目录下CMakeLists.txt
# CMake 最低版本号要求
cmake_minimum_required (VERSION 3.1)
# 项目信息
project (demo)
# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_SRCS 变量
#aux_source_directory(./include DIR_HEADS) #aux_source_directory 命令只是用来查找源文件,对头文件无效
file(GLOB DIR_HEADS "include/*.h" "include/*.hpp")
aux_source_directory(./src DIR_SRCS)
# 循环输出
foreach(_var ${DIR_HEADS})
message("头文件:${_var} \n")
endforeach()
foreach(_var ${DIR_SRCS})
message("源文件:${_var} \n")
endforeach()
# 这个对应VS工程属性中C/C++西面的附加包含目录 注意不是VC++中的包含目录
include_directories(include)
#math 目录下的 include目录
include_directories(math/include)
file(GLOB header_files "include/*.h" "include/*.hpp")
# 添加 math 子目录
add_subdirectory(math)
# 指定生成目标
add_executable(demo ${DIR_SRCS} ${DIR_HEADS})
# 后面不加上 ${DIR_HEADS} 那么生成的vs工程,解决方案那里看不到头文件
# 添加链接库
target_link_libraries(demo math_lib)
math目录下CMakeLists.txt
# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_LIB_SRCS 变量
aux_source_directory(./src DIR_LIB_SRCS)
#aux_source_directory(./include DIR_LIB_HEADS)
file(GLOB DIR_LIB_HEADS "include/*.h" "include/*.hpp")
# 这个对应VS工程属性中C/C++西面的附加包含目录 注意不是VC++中的包含目录
include_directories(include)
# 生成链接库
add_library (math_lib ${DIR_LIB_SRCS} ${DIR_LIB_HEADS})