CMake笔记
1.使用set命令显式定义变量及赋值
2.变量使用${xxx}引用
3.循环语句:
1.Set(VAR a b c) Foreach(f ${VAR}) … Endforeach(f)
2.
WHILE()
… ENDWHILE()
4.CMAKE_CXX_COMPILER:指定C++编译器
5.CMAKE_C_COMPILER:指定C编译器
6.CMAKE_C_FLAGS:编译C文件时的选项,如-g;也可以通过add_definitions添加编译选项
7.EXECUTABLE_OUTPUT_PATH:可执行文件的存放路径
8.LIBRARY_OUTPUT_PATH:库文件路径
9.CMAKE_BUILD_TYPE::build 类型(Debug, Release, ...),CMAKE_BUILD_TYPE=Debug
10.BUILD_SHARED_LIBS:生成动态/静态库
11.aux_source_directory(<dir> <variable>),将所有变量保存在variable中
12.message([SEND_ERROR | STATUS | FATAL_ERROR] "message to display" ...) 打印信息
13.add_definitions添加编译宏选项
14.add_dependencies 添加依赖项
15.${projectname_SOURCE_DIR} 根源文件目录
16.${ projectname _BINARY_DIR} 根二进制文件目录
17.LESS、GREATER、EQUAL,数字比较
18.STRLESS、STRGREATER、STREQUAL字串比较
19.IF( APPLE ); IF( UNIX ); IF( WIN32 )跨平台编译
20.# cmake .
# make
或者 # mkdir build
# cd build
# cmake ..
# make
两种方法最大的不同在于执行cmake和make的工作路径不同
内部构建:cmake生成的所有中间文件和可执行文件都会存放在项目目录中;称为“。而第二种方法中,中间文件和可执行文件都存放再build目录中。
外部构建:它最大限度的保持了代码目录的整洁。同时由于第二种方法的生成、编译和安装是发生在不同于项目目录的其他目录中。cmake强烈推荐使用外部构建的方法。 set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
21.add_subdirectory(plugins) 添加子文件夹