CMake学习随笔

CMake基本特点

  • Cmake: Cross Platform Make,一种可跨平台的高阶构建框架
  • 能管理大项目,开源,高效,方便扩展
  • 通过CMakeLists.txt的文件,CMake得以描述构建过程,并通过cmake命令产生标准的构建文件,如MakeFile

基本语法

  • PROJECT(projectname [CXX] [C] [Java])
    定义工程名称,并可指定工程支持的语言,支持的语言列表是可以忽略的,默认情况表示支持所有语言
  • SET(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]])
    SET 指令可以用来显式的定义变量:SET(SRC_LIST main.c t1.c t2.c)
  • MESSAGE([SEND_ERROR | STATUS | FATAL_ERROR] "message to display" ...)
    用于向终端输出用户定义的信息
  • ADD_EXECUTABLE(hello ${SRC_LIST})
    定义生成可执行文件
  • ADD_SUBDIRECTORY(source_dir [binary_dir] [EXCLUDE_FROM_ALL])
    用于向当前工程添加存放源文件的子目录,并可以指定中间二进制和目标二进制存放的位置,EXCLUDE_FROM_ALL 参数的含义是将这个目录从编译过程中排除
  • INSTALL 指令用于定义安装规则,安装的内容可以包括目标二进制、动态库、静态库以及文件、目录、脚本等
image.png
  • ADD_LIBRARY: 建动态库和静态库。


    image.png
  • INCLUDE_DIRECTORIES([AFTER|BEFORE] [SYSTEM] dir1 dir2 ...)
    引入头文件搜索路径
  • LINK_DIRECTORIES(directory1 directory2 ...)
    添加非标准的共享库搜索路径
  • TARGET_LINK_LIBRARIES
    可以用来为 target 添加需要链接的共享库

基本命令

cmake ..
make help
make clean
make install: 可以通过 make install DESTDIR=/tmp/test
make VERBOSE=1

内置变量

CMAKE_C_FLAGS : 设置 C 编译选项
CMAKE_CXX_FLAGS:设置 C++编译选项

参考:: <>

你可能感兴趣的:(CMake学习随笔)