[关闭]
@ltlovezh 2019-08-04T11:05:59.000000Z 字数 1689 阅读 1163

Cmake

Cmake


变量

提供信息的变量

  1. CMAKE_CURRENT_SOURCE_DIR:当前Cmake处理的源码目录的完整路径。
  2. CMAKE_SOURCE_DIR:当前CMake处理的源码树的顶级完整路径。一般情况下,与CMAKE_CURRENT_SOURCE_DIR取值相同。
  3. CMAKE_CURRENT_BINARY_DIR:当前由cmake处理的构建目录的完整路径。
  4. CMAKE_BINARY_DIR:当前CMake构建输出的顶级完整路径。一般情况下,与CMAKE_CURRENT_BINARY_DIR取值相同。在Android Cmake Library中,默认为Library/.externalNativeBuild/cmake/debug/${ABI}
  5. CMAKE_GENERATOR:用于构建项目的生成器,默认情况下,Android上为Ninja,Mac上为Unix Makefiles
  6. CMAKE_MAKE_PROGRAM :启动构建系统的工具,依赖于CMAKE_GENERATOR。默认情况下,Android上为sdk/cmake/version/bin/ninja,Mac上为/usr/bin/make

改变行为的变量

  1. CMAKE_BUILD_TYPE:为configuration指定构建类型,例如:Debug、Release
  2. CMAKE_INCLUDE_PATH:为find_file()find_path()指定搜索的目录列表。
  3. CMAKE_SYSTEM_INCLUDE_PATH:find_file()find_path()默认的系统搜索目录列表
  4. CMAKE_INCLUDE_PATH:为find_library()指定搜索的目录列表。
  5. CMAKE_SYSTEM_LIBRARY_PATH:find_library()默认的系统搜索目录列表。

描述系统的变量

  1. CMAKE_SYSTEM_NAME:CMake为之构建的目标操作系统名字,Android Library为Android;Mac默认为Darwin
  2. CMAKE_SYSTEM_PROCESSOR:Cmake为之构建的目标CPU架构,Android Library可以是armv7-aaarch64等,Mac默认为x86_64
  3. CMAKE_SYSTEM_VERSION:CMake为之构建的目标操作系统版本,Android Library是1,Mac则是具体的版本,例如:18.2.0。
  4. CMAKE_SYSTEM:${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_VERSION}的联合取值。
  5. CMAKE_HOST_SYSTEM、CMAKE_HOST_SYSTEM_NAME、CMAKE_HOST_SYSTEM_PROCESSOR和CMAKE_HOST_SYSTEM_VERSION则是表示Cmake宿主操作系统的信息。比如:在Mac上为Android构建库,则HOST相关变量为Mac系统信息,非HOST相关变量为Android系统信息。
  6. ANDROID:当目标系统为Android时设置为1
  7. APPLE:当目标系统为Apple平台时,设置为1,例如:macOS, iOS, tvOS or watchOS
  8. IOS:当目标系统为iOS时设置为1
  9. UNIX:当目标系统为UNIX或者UNIX-like时设置为1,Mac和Android都为1
  10. WIN32:当目标系统为Windows(包括:Win64)时设置为1
  11. CMAKE_HOST_APPLE:当Cmake宿主系统是Apple macOS时设置为True
  12. CMAKE_HOST_SOLARIS:当Cmake宿主系统是Oracle Solaris时设置为True
  13. CMAKE_HOST_UNIX:当Cmake宿主系统是UNIX或者UNIX-like时设置为True
  14. CMAKE_HOST_WIN32:当Cmake宿主系统是Window时设置为True

控制构建的变量

    1.

语言变量

    1.

处理子工程

add_subdirectory

添加一个子工程(目录)去编译。

ExternalProject

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注