前言:
- 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