目录
1.CMake 系统信息
2.资料夹和档案信息
3. 各类flags (一般用 set命令设置)
CMAKE_SYSTEM
系统全名,如 "Linux-2.4.22","FreeBSD-5.4-RELEASE" 或 "Windows 5.1"
CMAKE_SYSTEM_NAME
系统名称,如 "Linux", "FreeBSD" or "Windows"
CMAKE_SYSTEM_VERSION
只有 CMAKE_SYSTEM 当中版本的部分
CMAKE_SYSTEM_PROCESSOR
CPU 名称,如 "Intel(R) Pentium(R) M processor 2.00GHz"
CMAKE_GENERATOR
在命令列所指定的 Generator 名称
message("CMAKE_SYSTEM:" ${CMAKE_SYSTEM})
message("CMAKE_SYSTEM_NAME:" ${CMAKE_SYSTEM_NAME})
message("CMAKE_SYSTEM_VERSION:" ${CMAKE_SYSTEM_VERSION})
message("CMAKE_SYSTEM_PROCESSOR:" ${CMAKE_SYSTEM_PROCESSOR})
message("CMAKE_GENERATOR:" ${CMAKE_GENERATOR})
CMAKE_SOURCE_DIR
内容为 source tree 根目录的完整路径,也就是 CMake 开始建置过程的进入点。
CMAKE_BINARY_DIR
内容为 binary tree 根目录的完整路径,在 in-source build 的时候值与 CMAKE_SOURCE_DIR 相同。
PROJECT_SOURCE_DIR
目前正在处理中的专案最上层目录,即内含 project() 指令的 CMakeLists 所在资料夹。
PROJECT_BINARY_DIR
目前所属专案的建置根目录。在 in-source build 时和 PROJECT_SOURCE_DIR 相同。
CMAKE_CURRENT_SOURCE_DIR
目前正在处理的 CMakeLists.txt 所在位置。
CMAKE_CURRENT_BINARY_DIR
目前正在处理的 CMakeLists.txt 对应的建置资料夹位置。在 in-source build 时和 CMAKE_CURRENT_SOURCE_DIR 相同。
CMAKE_CURRENT_LIST_DIR
表示正在处理的 CMakeLists.txt 文件的所在的目录的绝对路径(2.8.3 以及以后版本才支持)
CMAKE_ARCHIVE_OUTPUT_DIRECTORY
用于设置 ARCHIVE 目标的输出路径
CMAKE_LIBRARY_OUTPUT_DIRECTORY
用于设置 LIBRARY 目标的输出路径
CMAKE_RUNTIME_OUTPUT_DIRECTORY
用于设置 RUNTIME 目标的输出路径
message("CMAKE_SOURCE_DIR:" ${CMAKE_SOURCE_DIR})
message("CMAKE_BINARY_DIR:" ${CMAKE_BINARY_DIR})
message("PROJECT_SOURCE_DIR:" ${PROJECT_SOURCE_DIR})
message("PROJECT_BINARY_DIR:" ${PROJECT_BINARY_DIR})
message("CMAKE_CURRENT_SOURCE_DIR:" ${CMAKE_CURRENT_SOURCE_DIR})
message("CMAKE_CURRENT_BINARY_DIR:" ${CMAKE_CURRENT_BINARY_DIR})
message("CMAKE_CURRENT_LIST_DIR:" ${CMAKE_CURRENT_LIST_DIR})
message("CMAKE_ARCHIVE_OUTPUT_DIRECTORY:" ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY})
message("CMAKE_LIBRARY_OUTPUT_DIRECTORY:" ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
message("CMAKE_RUNTIME_OUTPUT_DIRECTORY:" ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
LIBRARY_OUTPUT_PATH
用于设置 可执行程序的输出路径
EXECUTABLE_OUTPUT_PATH
用于设置 库文件的输出路径
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
CMAKE_FIND_ROOT_PATH_BOTH
先查找 CMAKE_FIND_ROOT_PATH 这个路径,再查找全局路径(find_xx函数专用)
NO_CMAKE_FIND_ROOT_PATH
不在 CMAKE_FIND_ROOT_PATH 下进行查找(find_xx函数专用)
ONLY_CMAKE_FIND_ROOT_PATH
只在 CMAKE_FIND_ROOT_PATH 这个路径下查找(find_xx函数专用)
CMAKE_BUILD_TYPE
控制建置类型,值可为下列之一:
None: 编译器默认值
Debug: 产生除错信息
Release: 进行最佳化
RelWithDebInfo: 进行最佳化,但仍然会启用 DEBUG flag
MinSizeRel: 进行程式码最小化
C /C++编译标志相关变量
CMAKE_C_FLAGS
CMAKE_C_FLAGS_[DEBUG|RELEASE|MINSIZEREL|RELWITHDEBINFO] CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS_[DEBUG|RELEASE|MINSIZEREL|RELWITHDEBINFO]
set( CMAKE_CXX_FLAGS "-std=c++11 -fPIC -Wall -Wextra -Werror -Ofast" )
set( CMAKE_C_FLAGS "-fPIC -Wall -Werror -O3 -std=gnu99" )
链接标志相关变量
CMAKE_EXE_LINKER_FLAGS
CMAKE_EXE_LINKER_FLAGS_[DEBUG|RELEASE|MINSIZEREL|RELWITHDEBINFO]
CMAKE_MODULE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS_[DEBUG|RELEASE|MINSIZEREL|RELWITHDEBINFO]
CMAKE_SHARED_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS_[DEBUG|RELEASE|MINSIZEREL|RELWITHDEBINFO]
set ( CMAKE_EXE_LINKER_FLAGS
"${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath -Wl,${CMAKE_LIBRARY_OUTPUT_DIRECTORY}" )