cmake_minimum_required(VERSION 3.5)
指定cmake最低版本
project(Hello)
指定解决方案的名称
set(MODULE_NAME hello)
指定子工程名
add_executable(demo main.cpp)
生成名为demo的可执行文件,并向其中添加main.cpp文件
target_sources(demo PRIVATE my.cpp)
向可执行文件demo中添加源文件my.cpp
find_package(opencvREQUIRED)
查找依赖库,生成包含目录、库目录、库名称(REQUIRED:查找不到报错)
例如:opencv会查找Build文件夹下的OpenCVConfig.cmake文件,然后解析
target_include_directories
配置头文件
target_link_libraries
配置链接库
file(GLOB_RECURSE variable [RELATIVE path] [globbingexpressions]...)
文件筛选器。
GLOB_RECURSE:遍历匹配目录的所有文件以及子目录下面的文件
variable:将匹配到的文件组成一个列表存储到该变量中
[RELATIVE path] :相对路径
[globbingexpressions]:指定路径
例:file(GLOB_RECURSE header_list1 ${CMAKE_CURRENT_SOURCE_DIR}/source/*.h)
释义:CMAKE_CURRENT_SOURCE_DIR:CMakeLists.txt所在的目录
搜索该路径下所有的.h文件并保存到header_list1变量中
source_group(
文件归类
例:source_group("Header Files" FILES ${header_list})
创建Header Files文件夹,将header_list1变量中存储的文件放到该文件夹中
message( [STATUS|WARNING|AUTHOR_WARNING|FATAL_ERROR|SEND_ERROR]
"message to display" ...)
在cmake编译过程中显示一条信息
(无) = 重要消息;
STATUS = 非重要消息;
WARNING = CMake 警告, 会继续执行;
AUTHOR_WARNING = CMake 警告 (dev), 会继续执行;
SEND_ERROR = CMake 错误, 继续执行,但是会跳过生成的步骤;
FATAL_ERROR = CMake 错误, 终止所有处理过程;
例:message (STATUS "PROJECT_SOURCE_DIR: ${PROJECT_SOURCE_DIR}")
显示工程源代码路径