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) 添加子文件夹

 

posted @ 2021-02-23 16:49  angry_gladiator  阅读(98)  评论(0编辑  收藏  举报