在脚本模式下传递给CMake的命令行参数数。
当以-P脚本模式运行时,CMake将此变量设置为命令行参数的数量。参见【CMAKE_ARGV0】, 1, 2…
在脚本模式下传递给CMake的命令行参数。
当以-P脚本模式运行时,CMake将该变量设置为第一个命令行参数。然后它还设置了CMAKE_ARGV1, CMAKE_ARGV2,…以此类推,直到给出的命令行参数的数量。也看到CMAKE_ARGC。
到构建树顶层的路径。
这是到当前CMake构建树顶层的完整路径。对于源代码内构建,这将与CMAKE_SOURCE_DIR相同。
在-P脚本模式下运行时,CMake将变量CMAKE_BINARY_DIR、CMAKE_SOURCE_DIR、CMAKE_CURRENT_BINARY_DIR和CMAKE_CURRENT_SOURCE_DIR设置为当前工作目录。
此变量仅用于向后兼容。它包含与CMAKE_MAKE_PROGRAM相同的值。用那个变量代替。
用于创建CMakeCache.txt文件的CMake的主要版本
它存储用于写入CMake缓存文件的CMake的主要版本。只有在先前创建的缓存文件上运行不同版本的CMake时,情况才会有所不同。
用于创建CMakeCache.txt文件的CMake的次要版本
它存储用于写入CMake缓存文件的CMake的次要版本。只有在先前创建的缓存文件上运行不同版本的CMake时,情况才会有所不同。
用于创建CMakeCache.txt文件的CMake修补程序版本
它存储用于写入CMake缓存文件的CMake的修补程序版本。只有在先前创建的缓存文件上运行不同版本的CMake时,情况才会有所不同。
包含CMakeCache.txt文件的目录。
这是包含CMakeCache.txt文件的目录的完整路径。这与CMAKE_BINARY_DIR相同。
自版本3.21以来已弃用
cmake(1)可执行文件的完整路径。
这是CMake可执行文件CMake(1)的完整路径,对于希望在可移植系统命令中使用CMake -E选项的自定义命令来说,CMake(1)非常有用。(例如/usr/local/bin/cmake)
版本3.13中的新功能。
安装CMake时cpack(1)命令的完整路径。
这是CPack可执行文件CPack(1)的完整路径,对于希望将cmake(1)-E选项用于可移植系统命令的自定义命令非常有用。
旨在指示CMake是否是交叉编译,详情请参见这里
3.3新版功能。
这个变量只在CMAKE_CROSSCOMPILING打开时使用。它应该指向主机系统上可以运行为目标系统构建的可执行文件的命令。
如果这个变量包含一个分号分隔的列表,那么第一个值就是命令,其余的值是它的参数。
该命令将用于运行try_run()生成的可执行文件,这将避免手动填充TryRunResults。cmake文件。
它也被用作可执行文件的CROSSCOMPILING_EMULATOR目标属性的默认值。
CMake下安装的ctest(1)命令的完整路径。
这是CTest可执行文件CTest(1)的完整路径,对于希望为可移植系统命令使用cmake(1) -E选项的自定义命令来说,CTest(1)非常有用。
当前正在处理的二进制目录的路径。
这是cmake当前正在处理的构建目录的完整路径。add_subdirectory()添加的每个目录将在构建树中创建一个二进制目录,在处理该目录时将设置此变量。对于内源代码构建,这是正在处理的当前源目录。
在-P脚本模式下运行时,CMake将变量CMAKE_BINARY_DIR、CMAKE_SOURCE_DIR、CMAKE_CURRENT_BINARY_DIR和CMAKE_CURRENT_SOURCE_DIR设置为当前工作目录。
3.17新版功能。
当在function()内部执行代码时,该变量包含当前函数的名称。它对于诊断或调试消息很有用。
参见CMAKE_CURRENT_FUNCTION_LIST_DIR, CMAKE_CURRENT_FUNCTION_LIST_FILE和CMAKE_CURRENT_FUNCTION_LIST_LINE。
3.17新版功能。
当在function()中执行代码时,该变量包含定义当前函数的列表文件的完整目录。
在CMake模块中,使用一些额外的文件是很常见的做法,例如在替换CMake变量后要复制的模板。在这种情况下,函数需要以一种不依赖于调用函数的位置的方式知道在哪里定位这些文件。如果没有CMAKE_CURRENT_FUNCTION_LIST_DIR,执行该操作的代码通常会使用以下模式:
set(_THIS_MODULE_BASE_DIR "${CMAKE_CURRENT_LIST_DIR}")
function(foo)
configure_file(
"${_THIS_MODULE_BASE_DIR}/some.template.in"
some.output
)
endfunction()
在函数中使用CMAKE_CURRENT_FUNCTION_LIST_DIR可以消除对额外变量的需要,否则该变量将在函数的作用域之外可见。以上示例可以用更简洁、更健壮的形式编写:
function(foo)
configure_file(
"${CMAKE_CURRENT_FUNCTION_LIST_DIR}/some.template.in"
some.output
)
endfunction()
参见CMAKE_CURRENT_FUNCTION, CMAKE_CURRENT_FUNCTION_LIST_DIR和CMAKE_CURRENT_FUNCTION_LIST_LINE。
版本3.17中的新功能。
在function()中执行代码时,该变量包含定义当前函数的列表文件的完整路径
参见CMAKE_CURRENT_FUNCTION, CMAKE_CURRENT_FUNCTION_LIST_FILE和CMAKE_CURRENT_FUNCTION_LIST_LINE。
版本3.17中的新功能。
在function()中执行代码时,此变量包含定义当前函数的listfile中的行号。
参见CMAKE_CURRENT_FUNCTION, CMAKE_CURRENT_FUNCTION_LIST_DIR和CMAKE_CURRENT_FUNCTION_LIST_FILE。
当前正在处理的列表文件的完整目录。
当CMake处理项目中的列表文件时,这个变量将始终设置为当前正在处理的列表文件(CMAKE_CURRENT_LIST_FILE)所在的目录。该值具有动态作用域。
因此,宏或函数内部变量的值是调用调用堆栈中最底部条目的文件的目录,而不是包含宏或函数定义的文件的目录。
另请参见CMAKE_CURRENT_LIST_FILE。
当前正在处理的列表文件的完整路径。
当CMake在你的项目中处理列表文件时,这个变量将总是被设置为当前正在处理的。该值具有动态作用域。当CMake在源文件中启动处理命令时,它将该变量设置为文件的位置。当CMake从文件中完成处理命令时,它恢复先前的值。因此,宏或函数内部变量的值是调用调用堆栈中最底部条目的文件,而不是包含宏或函数定义的文件。
另请参见CMAKE_PARENT_LIST_FILE。
正在处理的当前文件的行号。
这是cmake当前正在处理的文件的行号。
如果CMake当前正在处理由cmake_language(DEFER)命令调度的延迟调用,这个变量的计算结果deferred,而不是特定的行号。
当前正在处理的源目录的路径。
这是cmake当前正在处理的源目录的完整路径。
在-P脚本模式下运行时,CMake将变量CMAKE_BINARY_DIR、CMAKE_SOURCE_DIR、CMAKE_CURRENT_BINARY_DIR和CMAKE_CURRENT_SOURCE_DIR设置为当前工作目录。
启用目标属性的跟踪输出。详情请参见这里
3.10新版功能。
为当前目录指定标签。
这用于初始化LABELS目录属性。
包含dloopen和dlclose的库名。
包含dloopen和dlclose的库的名称,在大多数UNIX机器上通常是-ldl。
3.17新版功能。
目标的DOTNET_TARGET_FRAMEWORK属性的默认值。
该变量用于初始化所有目标上的DOTNET_TARGET_FRAMEWORK属性。有关其他信息,请参阅target属性。
这个变量只适用于Visual Studio Generators VS 2010及以上版本。
这个变量只适用于Visual Studio Generators VS 2010及以上版本。
cmake-gui(1)或ccmake(1)的完整路径。当不为IDE使用“额外”生成器时,仅为Makefile generator定义。
这是可以图形化编辑缓存的CMake可执行文件的完整路径。例如,cmake-gui(1)或ccmake(1)。
此平台上可执行文件的后缀。比如,windows下是.exe
CMAKE_EXECUTABLE_SUFFIX_< LANG>将覆盖语言< LANG>
用来建造这个项目的额外generator 。请参见cmake generator (7)。
当使用Eclipse、CodeBlocks、CodeLite、Kate或Sublime生成器时,CMake会生成makefile (CMAKE_GENERATOR),并为各自的IDE生成额外的项目文件。这个IDE项目文件生成器存储在CMAKE_EXTRA_GENERATOR(例如Eclipse CDT4)中。
共享库的附加后缀。
除CMAKE_SHARED_LIBRARY_SUFFIX指定的扩展之外的共享库扩展(如果有的话)。CMake在分析由目标链接的库时使用它来识别外部共享库文件。
3.17新版功能。
打印以下命令的额外find调用信息到标准错误:
输出是为人类使用而设计的,而不是为解析而设计的。启用此变量相当于使用cmake–debug find,并添加了对find调用子集启用调试的功能。
set(CMAKE_FIND_DEBUG_MODE TRUE)
find_program(...)
set(CMAKE_FIND_DEBUG_MODE FALSE)
默认unset
3.1.1新版功能。
在加载find模块时由find_package()命令定义,以记录调用者指定的包名。详细信息请参见命令文档。
3.7新版功能。
CMAKE_FIND_PACKAGE_SORT_ORDER使用的排序方向。它可以假设以下值之一:
如果CMAKE_FIND_PACKAGE_SORT_ORDER没有设置或设置为NONE,则该变量无效。
3.7新版功能。
使用find_package()对找到的包进行排序的默认顺序。它可以假设以下值之一:
当find_package()找到同一个库的多个版本时,可以使用自然排序来返回最高版本。例如,假设已经找到了以下库:
通过设置NATURAL顺序,我们可以选择版本号最高的libX-1.2.10。
set(CMAKE_FIND_PACKAGE_SORT_ORDER NATURAL)
find_package(libX CONFIG)
排序方向可以使用CMAKE_FIND_PACKAGE_SORT_DIRECTION变量来控制(默认情况下递减,例如lib-B将在lib-A之前测试)。
用于构建项目的生成器。看到cmake-generators(7)。
用于生成生成文件的生成器的名称。(例如Unix Makefiles, Ninja等)
这个变量的值永远不应该被项目代码修改。生成器可以通过cmake(1) -G选项选择,在cmake-gui(1)中交互式地选择,或者通过CMAKE_GENERATOR环境变量。
3.11新版功能。
用户提供的特定于生成器的实例规范。
当有多个实例可用时,一些CMake生成器支持选择本地构建系统的实例。如果用户指定了一个实例(例如,通过设置这个缓存条目或通过CMAKE_GENERATOR_INSTANCE环境变量),或者在第一次配置构建树时选择了一个默认实例之后,该值将在这个变量中可用。
这个变量的值永远不应该被项目代码修改。CMAKE_TOOLCHAIN_FILE变量指定的工具链文件可以初始化CMAKE_GENERATOR_INSTANCE作为缓存项。一旦给定的构建树被初始化为该变量的特定值,更改该值将产生未定义的行为。
仅在特定的生成器上支持实例规范:
对于Visual Studio 15 2017生成器(以及以上版本),它指定了所选VS实例的VS安装目录的绝对路径。
有关允许的实例值,请参阅本地构建系统文档。
没用,请参见这里
没用,请参见这里
链接到的导入库的前缀。
如果在此平台上使用,则用于导入库名称的前缀。
CMAKE_IMPORT_LIBRARY_PREFIX_< LANG>覆盖了语言< LANG>。
链接到的导入库的后缀。
如果在此平台上使用,则用于导入库名称的后缀。
CMAKE_IMPORT_LIBRARY_SUFFIX_< LANG>覆盖了语言< LANG>。
此变量用于初始化所有目标上的JOB_POOL_COMPILE属性。有关其他信息,请参见JOB_POOL_COMPILE。
此变量用于初始化所有目标上的JOB_POOL_LINK属性。有关其他信息,请参见JOB_POOL_LINK。
3.17新版功能。
此变量用于初始化所有目标上的JOB_POOL_PRECOMPILE_HEADER属性。有关其他信息,请参见JOB_POOL_PRECOMPILE_HEADER。
3.11新版功能。
如果JOB_POOLS全局属性没有设置,则使用该变量的值。有关更多信息,请参见JOB_POOLS。
版本3.9中的新功能。
围绕ar的包装器为编译器添加了适当的–plugin选项。
另请参见:CMAKE_AR.
版本3.9中的新功能。
围绕ranlib的包装器为编译器添加了适当的–plugin选项。
另请参见:CMAKE_RANLIB。
版本3.16中的新功能。
链接到的库的特定于语言的后缀。
在Windows上用作库文件名.lib结尾的后缀。
链接到的库的后缀。
在Windows上用作库文件名.lib结尾的后缀。
看不懂
看不懂
CMAKE_VERSION变量的第一个版本号组件。
用到的时候再说
3.2新版功能。
与最后一个正则表达式匹配的次数。
当使用正则表达式匹配时,CMake用匹配内容填充CMAKE_MATCH_变量。当匹配表达式被填充时,CMAKE_MATCH_COUNT变量保存匹配表达式的数量。
看不懂
CMake的< min >版本用于在当前变量范围或任何父变量范围内对cmake_minimum_required(version)命令的最近一次调用。
CMAKE_VERSION变量的第二个版本号组件。
3.11新版功能。
这个变量用于初始化文件(下载)和文件(上传)命令和ExternalProject模块的NETRC选项。有关其他信息,请参见这些命令。
本地选项优先于此变量。
3.11新版功能。
这个变量用于初始化file(下载)和file(上传)命令和ExternalProject模块的NETRC_FILE选项。有关其他信息,请参见这些命令。
本地选项优先于此变量。
包含当前文件的CMake文件的完整路径。
当处理由include()或find_package()加载的CMake文件时,这个变量包含包含它的文件的完整路径。include堆栈的顶部总是当前目录的CMakeLists.txt。另请参见CMAKE_CURRENT_LIST_FILE。
CMAKE_VERSION变量的第三个版本号组件。