前言:
- CMAKE命令通用理解:
command(\<target> [E] <A|B|C>)
尖括号<>: 必选变量,<target>;
方括号[]: 可选变量,[E];
竖线|: 或的意思,A|B|C;
1、add_library(<name> [STATIC|SHARED|MODULE] source1 [source2 …])
作用: 生成库文件(动态库.so、静态库.a等)
用法:
add_library(so_name SHARED abc.cpp)
aux_source_directory(. DIR_SRCS)
add_library(abc STATIC ${DIR_SRCS})
参考资料:
1、CMAKE:add_library
2、add_definitions、add_compile_definitions、target_compile_definitions用法:
作用:
add_definitions&add_compile_definitions:为当前以下层路径的所有源文件和target增加编译定义target_compile_definitions:为指定target增加编译定义
用法:
target_compile_definitions(<target> <INTERFACE|PUBLIC|PRIVATE> [items1])
例:
add_definitions(-DFOO)
add_compile_definitions(FOO)
target_compile_definitions(target PUBLIC FOO)
参考资料:
1、 add_definitions
2、add_compile_definitions
3、target_compile_definitions
3、add_compile_options()用法
作用: 设置编译器编译选项
3.1、CMAKE_CXX_FLAGS、CMAKE_C_FLAG
用法: 单独设置C++或C的编译选项,编译选项放在“”内,同时要将“${CMAKE_C_FLAGS}字段保留
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-Werror ")
3.2、add_compile_options()
用法: 针对所有编译器设置编译选项
add_compile_options(-std=c++11)
参考文件:
1、cmake:设置编译选项的讲究
4、message([<mode>] “message text” …)
作用: 写在cmkae/Cmakelist.txt文件中,执行时输出日志
用法:
| 用法 | 解释 |
|---|---|
| message(STATUS “message text”) | 状态信息 |
| message(“message text”) | 一般通知 |
| message(FATAL_ERROR “message text”) | 验证错误,停止编译 |
| message(WARNING “message text”) | 警告,继续编译 |
5、execute_process
作用: 执行子进程
用法:
execute_process(COMMAND <cmd1> [args1...]] [WORKING_DIRECTORY <directory>])
例:
execute_process(COMMAND python ${ABC_PATH}/test1.py WORKING_DIRECTORY ${AA_PATH}/ABC)
命令解析: 在${AA_PATH}/ABC路径下执行test1.py脚本
参考资料:
1、CMAKE: execute_process
