@ltlovezh
2019-08-04T19:05:59.000000Z
字数 1689
阅读 1252
Cmake
Cmake
变量
提供信息的变量
- CMAKE_CURRENT_SOURCE_DIR:当前Cmake处理的源码目录的完整路径。
- CMAKE_SOURCE_DIR:当前CMake处理的源码树的顶级完整路径。一般情况下,与CMAKE_CURRENT_SOURCE_DIR取值相同。
- CMAKE_CURRENT_BINARY_DIR:当前由cmake处理的构建目录的完整路径。
- CMAKE_BINARY_DIR:当前CMake构建输出的顶级完整路径。一般情况下,与CMAKE_CURRENT_BINARY_DIR取值相同。在Android Cmake Library中,默认为
Library/.externalNativeBuild/cmake/debug/${ABI}
。
- CMAKE_GENERATOR:用于构建项目的生成器,默认情况下,Android上为
Ninja
,Mac上为Unix Makefiles
。
- CMAKE_MAKE_PROGRAM :启动构建系统的工具,依赖于
CMAKE_GENERATOR
。默认情况下,Android上为sdk/cmake/version/bin/ninja
,Mac上为/usr/bin/make
。
改变行为的变量
- CMAKE_BUILD_TYPE:为configuration指定构建类型,例如:Debug、Release
- CMAKE_INCLUDE_PATH:为
find_file()
和find_path()
指定搜索的目录列表。
- CMAKE_SYSTEM_INCLUDE_PATH:
find_file()
和find_path()
默认的系统搜索目录列表
- CMAKE_INCLUDE_PATH:为
find_library()
指定搜索的目录列表。
- CMAKE_SYSTEM_LIBRARY_PATH:
find_library()
默认的系统搜索目录列表。
描述系统的变量
- CMAKE_SYSTEM_NAME:CMake为之构建的目标操作系统名字,Android Library为
Android
;Mac默认为Darwin
。
- CMAKE_SYSTEM_PROCESSOR:Cmake为之构建的目标CPU架构,Android Library可以是
armv7-a
、aarch64
等,Mac默认为x86_64
。
- CMAKE_SYSTEM_VERSION:CMake为之构建的目标操作系统版本,Android Library是
1
,Mac则是具体的版本,例如:18.2.0。
- CMAKE_SYSTEM:
${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_VERSION}
的联合取值。
- CMAKE_HOST_SYSTEM、CMAKE_HOST_SYSTEM_NAME、CMAKE_HOST_SYSTEM_PROCESSOR和CMAKE_HOST_SYSTEM_VERSION则是表示Cmake宿主操作系统的信息。比如:在Mac上为Android构建库,则HOST相关变量为Mac系统信息,非HOST相关变量为Android系统信息。
- ANDROID:当目标系统为Android时设置为1
- APPLE:当目标系统为Apple平台时,设置为1,例如:macOS, iOS, tvOS or watchOS
- IOS:当目标系统为iOS时设置为1
- UNIX:当目标系统为UNIX或者UNIX-like时设置为1,Mac和Android都为1
- WIN32:当目标系统为Windows(包括:Win64)时设置为1
- CMAKE_HOST_APPLE:当Cmake宿主系统是Apple macOS时设置为True
- CMAKE_HOST_SOLARIS:当Cmake宿主系统是Oracle Solaris时设置为True
- CMAKE_HOST_UNIX:当Cmake宿主系统是UNIX或者UNIX-like时设置为True
- CMAKE_HOST_WIN32:当Cmake宿主系统是Window时设置为True
控制构建的变量
1.
语言变量
1.
处理子工程
add_subdirectory
添加一个子工程(目录)去编译。
ExternalProject