Cmake命令解析

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([FILES...][REGULAR_EXPRESSION])

文件归类

例: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}")

显示工程源代码路径

你可能感兴趣的:(#,C++,c++)