CMake笔记(2)预定义变量

CMake预定义变量

  • CMAKE_MAJOR_VERSION cmake主版本号,如2.8.6中的2。
  • CMAKE_MINOR_VERSION cmake次版本号,如2.8.6中的8。
  • CMAKE_PATCH_VERSION cmake补丁等级,如2.8.6中的6。
  • CMAKE_SYSTEM 系统名称,例如Linux-2.6.22。
  • CAMKE_SYSTEM_NAME 不包含版本的系统名,如Linux。
  • CMAKE_SYSTEM_VERSION 系统版本,如2.6.22。
  • CMAKE_SYSTEM_PROCESSOR 处理器名称,如i686。
  • UNIX 在所有的类UNIX平台为TRUE,包括OS X和cygwin。
  • WIN32 在所有的win32平台为TRUE,包括cygwin。
  • CMAKE_SOURCE_DIR、PROJECT_SOURCE_DIR、<projectname>_SOURCE_DIR,这三个变量指代的内容是一致的,是工程顶层目录。
  • CMAKE_BINARY_DIR、PROJECT_BINARY_DIR、<projectname>_BINARY_DIR,这三个变量指代的内容是一致的,如果是in source编译,指得就是工程顶层目录,如果 是out-of-source编译,指的是工程编译发生的目录。
  • CMAKE_CURRENT_SOURCE_DIR,指的是当前处理的CMakeLists.txt所在的路径。

  • CMAKE_CURRRENT_BINARY_DIR,如果是in-source编译,它跟CMAKE_CURRENT_SOURCE_DIR一致,如果是out-ofsource 编译,他指的是target编译目录。

  • CMAKE_CURRENT_LIST_FILE,输出调用这个变量的CMakeLists.txt的完整路径。

  • CMAKE_CURRENT_LIST_LINE,输出这个变量所在的行,可以定位当前CMakeList.txt文件语句执行的位置。
  • CMAKE_MODULE_PATH ,定义自己的cmake模块所在的路径。
  • EXECUTABLE_OUTPUT_PATH ,重新定义目标二进制可执行文件的存放位置
  • LIBRARY_OUTPUT_PATH ,重新定义目标链接库文件的存放位置
  • PROJECT_NAME ,返回通过PROJECT指令定义的项目名称
  • CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ,用来控制IF ELSE语句的书写方式
  • CMAKE_BUILD_TYPE,控制 Debug 和 Release 模式的构建,例如:

在CMakeList.txt文件中

SET(CMAKE_BUILD_TYPE Debug)

使用命令行参数

cmake DCMAKE_BUILD_TYPE=Release
  • BUILD_SHARED_LIBS, 控制默认的库编译方式,如果未进行设置,使用ADD_LIBRARY时又没有指定库类型,默认编译生成的库都是静态库 
  • CMAKE_C_FLAGS, 设置C编译选项
  • CMAKE_CXX_FLAGS, 设置C++编译选项
  • CROSS_TOOLCHAIN_PREFIX ,指定编译器路径
  • CMAKE_C_COMPILER,指定c编译器
  • CMAKE_CXX_COMPILER,指定c++编译器
  • CMAKE_INSTALL_PREFIX,指定安装路径
  • CMAKE_INCLUDE_PATH,配合 FIND_FILE() 以及 FIND_PATH() 使用。如果头文件没有存放在常规路径(/usr/include, /usr/local/include等),则可以通过这些变量就行弥补。如果不使用 FIND_FILE 和 FIND_PATH的话,CMAKE_INCLUDE_PATH,没有任何作用。
  • CMAKE_LIBRARY_PATH,配合 FIND_LIBRARY() 使用,否则没有任何作用。

  • CMAKE_MODULE_PATH,cmake 为上百个软件包提供了查找器(finder):FindXXXX.cmake当使用非cmake自带的finder时,需要指定finder的路径,这就是CMAKE_MODULE_PATH,配合 FIND_PACKAGE()使用。

猜你喜欢

转载自blog.csdn.net/weicao1990/article/details/81200103