CMake中的变量: 信息变量

一. CMake 信息变量

变量名称描述
CMAKE_AR静态库的存档工具的名称。这指定了创建存档库或静态库的程序的名称。
CMAKE_ARGC在脚本模式下传递给CMake的命令行参数个数。在-P脚本模式下运行时,CMake将此变量设置为命令行参数的数量。
CMAKE_ARGV0在脚本模式下传递给CMake的命令行参数。
在-P脚本模式下运行时,CMake将此变量设置为第一个命令行参数。然后,它还设置CMAKE_ARGV1、CMAKE_ARGV2。。。依此类推,直到给定的命令行参数数为止。
CMAKE_BINARY_DIR生成树顶层的路径。这是当前CMake构建树的顶层的完整路径。对于源代码内构建,这将与CMAKE_SOURCE_DIR相同。
在cmake -P脚本模式下运行时,cmake将变量CMAKE_BINARY_DIR、CMAKE_SOURCE_DIR、CMAKE_CURRENT_BINARY_DIR和CMAKE_CURRENT_SOURCE_DIR设置为当前工作目录。
CMAKE_BUILD_TOOL此变量仅用于向后兼容性。它包含与CMAKE_MAKE_PROGRAM相同的值。请改用该变量。
CMAKE_CACHE_MAJOR_VERSION用于创建CMakeCache.txt文件的CMake的主要版本
这存储用于写入CMake缓存文件的CMake的主要版本。只有在以前创建的缓存文件上运行不同版本的CMake时,情况才会有所不同。
CMAKE_CACHE_MINOR_VERSION用于创建CMakeCache.txt文件的CMake的次要版本
这存储用于写入CMake缓存文件的CMake的次要版本。只有在以前创建的缓存文件上运行不同版本的CMake时,情况才会有所不同。
CMAKE_CACHE_PATCH_VERSION用于创建CMakeCache.txt文件的CMake的修补程序版本
这存储用于写入CMake缓存文件的CMake的修补程序版本。只有在以前创建的缓存文件上运行不同版本的CMake时,情况才会有所不同。
CMAKE_CACHEFILE_DIR此变量由CMake内部使用,在构建树的第一次配置期间可能不会设置。设置后,其值与CMAKE_BINARY_DIR相同。请改用该变量。
CMAKE_CFG_INTDIR自3.21版本以来已弃用:此变量在Ninja Multi-Config上的支持较差,并且早于 < C o n f i g > 生成器表达式的存在。请改用 <Config>生成器表达式的存在。请改用 <Config>生成器表达式的存在。请改用
CMAKE_COMMANDcmake可执行文件的完整路径。它对于想要使用CMake-E选项执行可移植系统命令的自定义命令非常有用。(例如/usr/local/bin/cmake)
CMAKE_CPACK_COMMAND3.13版新增。与CMake一起安装的cpack命令的完整路径。
这是CPack可执行文件CPack的完整路径,可用于自定义命令或测试以调用CPack命令。
CMAKE_CROSSCOMPILING此变量由CMake设置,用于指示是否进行交叉编译
CMAKE_CROSSCOMPILING_EMULATOR3.3版新增。
此变量仅在CMAKE_CROSSCOMPILING打开时使用。它应该指向主机系统上的一个命令,该命令可以运行为目标系统构建的可执行文件。
CMAKE_CTEST_COMMAND与CMake一起安装的ctest命令的完整路径。
这是CTest可执行CTest的完整路径,可用于自定义命令或测试以调用CTest命令。
CMAKE_CURRENT_BINARY_DIR当前正在处理的二进制目录的路径。
这是cmake当前正在处理的构建目录的完整路径。add_subdirectory()添加的每个目录都会在构建树中创建一个二进制目录,在处理过程中会设置此变量。对于源代码内构建,这是正在处理的当前源目录。
CMAKE_CURRENT_FUNCTION3.17版新增。
在function()内部执行代码时,此变量包含当前函数的名称。它可以用于诊断或调试消息。
CMAKE_CURRENT_FUNCTION_LIST_DIR3.17版新增。
在function()内部执行代码时,此变量包含定义当前函数的列表文件的完整目录。
CMAKE_CURRENT_FUNCTION_LIST_FILE在function()内部执行代码时,此变量包含定义当前函数的列表文件的完整路径。
CMAKE_CURRENT_FUNCTION_LIST_LINE在function()内部执行代码时,此变量包含列表文件中定义当前函数的行号。
CMAKE_CURRENT_LIST_DIR当前正在处理的列表文件的完整目录。
当CMake处理项目中的列表文件时,此变量将始终设置为当前正在处理的列表文件(CMake_CURRENT_LIST_FILE)所在的目录。该值具有动态范围。当CMake开始处理源文件中的命令时,它会将此变量设置为该文件所在的目录。当CMake完成处理文件中的命令时,它将恢复以前的值。因此,宏或函数内部变量的值是调用调用堆栈上最底部条目的文件的目录,而不是包含宏或函数定义的文件的路径。
CMAKE_CURRENT_LIST_FILE当前正在处理的列表文件的完整路径。
当CMake处理项目中的列表文件时,此变量将始终设置为当前正在处理的变量。该值具有动态范围。当CMake开始处理源文件中的命令时,它会将此变量设置为文件的位置。当CMake完成处理文件中的命令时,它将恢复以前的值。因此,宏或函数中变量的值是调用调用堆栈上最底层条目的文件,而不是包含宏或函数定义的文件。
CMAKE_CURRENT_LIST_LINE正在处理的当前文件的行号。
这是cmake当前正在处理的文件的行号。
如果CMake当前正在处理由CMake_language(DEFER)命令调度的延迟调用,则此变量的求值结果为deferred,而不是特定的行号。
CMAKE_CURRENT_SOURCE_DIR当前正在处理的源目录的路径。
这是cmake当前正在处理的源目录的完整路径。
在cmake-P脚本模式下运行时,cmake将变量CMAKE_BINARY_DIR、CMAKE_SOURCE_DIR、CMAKE_CURRENT_BINARY_DIR和CMAKE_CURRENT_SOURCE_DIR设置为当前工作目录。
CMAKE_DEBUG_TARGET_PROPERTIES启用目标属性的跟踪输出。
可以使用属性列表填充此变量,以便在评估目标属性时生成调试输出。目前,它只能在评估时使用:
AUTOUIC_OPTIONS
COMPILE_DEFINITIONS
COMPILE_FEATURES
COMPILE_OPTIONS
INCLUDE_DIRECTORIES
LINK_DIRECTORIES
LINK_OPTIONS
POSITION_INDEPENDENT_CODE
SOURCES
CMAKE_DIRECTORY_LABELS3.10版新增。
指定当前目录的标签。
这用于初始化LABELS目录属性。
CMAKE_DL_LIBS包含dlopen和dlclose的库的名称。
具有dlopen和dlclose的库的名称,在大多数UNIX计算机上通常为-ldl。
CMAKE_DOTNET_SDK3.23版本中的新增功能。
目标的DOTNET_SDK属性的默认值。
此变量用于初始化所有目标上的DOTNET_SDK属性。
CMAKE_DOTNET_TARGET_FRAMEWORK3.17版新增。
目标的DOTNET_TARGET_FRAMEWORK属性的默认值。
此变量用于初始化所有目标上的DOTNET_TARGET_FRAMEWORK属性。
在使用C#和更新的.NET框架版本时,可能需要设置CMAKE_DOTNET_TARGET_FRAMEWORK,以避免ALL_BUILD CMAKE目标引用错误。
此变量仅适用于Visual Studio Generators VS 2010及更高版本。
CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION3.12版新增。
目标的DOTNET_TARGET_FRAMEWORK_VERSION属性的默认值。
此变量用于初始化所有目标上的DOTNET_TARGET_FRAMEWORK_VERSION属性。有关其他信息,请参见该目标属性。设置时,CMAKE_DOTNET_TARGET_FRAMEWORK会优先于此变量。有关其他信息,请参见该变量或关联的目标属性DOTNET_target_FRAMEWORK。
使用C#和更新的.NET框架版本时,可能需要设置CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION,以避免ALL_BUILD CMAKE目标引用错误。
此变量仅适用于Visual Studio Generators VS 2010及更高版本。
CMAKE_EDIT_COMMANDcmake gui或ccmake的完整路径。仅在不使用任何额外生成器时为Makefile生成器和Ninja生成器定义。
这是CMake可执行文件的完整路径,该可执行文件可以图形化地编辑缓存。例如,cmake-gui或ccmake。
CMAKE_EXECUTABLE_SUFFIX此平台上可执行文件的后缀。
用于可执行文件名结尾的后缀(如果有),在Windows上为.exe。
CMAKE_EXECUTABLE_SUFFIX_会覆盖语言。
CMAKE_EXECUTABLE_SUFFIX_用于编译器目标体系结构的可执行文件名结尾的后缀(如果有的话)。
它覆盖语言<LANG>的CMAKE_EXECUTABLE_SUFIX。
CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES共享库的其他后缀。
CMAKE_SHARED_LIBRARY_SUFFIX指定的共享库以外的共享库的扩展(如果有)。CMake在分析由目标链接的库时使用此功能来识别外部共享库文件。
CMAKE_FIND_DEBUG_MODE3.17版新增。
将以下命令的额外查找调用信息打印为标准错误:
find_program()
find_file()
find_library()
find_package()
find_path()
CMAKE_FIND_PACKAGE_NAME3.1.1版新增。
由find_package()命令在加载查找模块时定义,以记录调用方指定的包名称。
CMAKE_FIND_PACKAGE_REDIRECTS_DIR3.24版本中的新增功能。
此只读变量指定find_package()命令在其他位置搜索模块或配置包文件之前首先检查的目录。此目录中的配置包文件将始终优先于任何其他查找模块文件或配置包文件。
此变量的主要目的是促进find_package()和FetchContent_MakeAvailable()之间的集成。后一个命令在填充依赖项时可以在CMAKE_FIND_PACKAGE_REDIRECTS_DIR目录中创建文件。这允许对相同依赖项的find_package()进行后续调用,以重用填充的内容,而不是试图从构建外部的某个地方满足依赖项。在某些情况下,项目可能还希望将文件写入此目录(有关示例,请参阅与find_package()集成)。
CMAKE_FIND_PACKAGE_REDIRECTS_DIR指向的目录将始终被擦除,并在每个CM开始时重新创建为空
CMAKE_FIND_PACKAGE_SORT_DIRECTION3.7版新增。
CMAKE_FIND_PACKAGE_SORT_ORDER使用的排序方向。它可以采用以下值之一:
DEC:违约排序以降序模式进行。将首先测试找到的最高文件夹。
ASC:排序以升序模式进行。将首先测试找到的最低文件夹。
如果CMAKE_FIND_PACKAGE_SORT_ORDER未设置或设置为NONE,则此变量无效。
CMAKE_FIND_PACKAGE_SORT_ORDER对使用find_package()找到的包进行排序的默认顺序。它可以采用以下值之一:
NONE:违约未尝试对包进行排序。将选择找到的第一个有效包。
NAME:在选择包之前,先按字典顺序对包进行排序。
NATURAL:使用自然顺序对包进行排序(请参阅strverscmp(3)手册),即将连续数字作为整数进行比较。
CMAKE_GENERATOR用于构建项目的生成器。
用于生成生成文件的生成器的名称。(例如Unix Makefiles、Ninja等)
项目代码不应修改此变量的值。生成器可以通过cmake-G选项、在cmake gui中交互或通过cmake_generator环境变量进行选择。
CMAKE_GENERATOR_INSTANCE3.11版新增。
用户提供的特定于生成器的实例规范。
当有多个实例可用时,一些CMake生成器支持选择本地构建系统的一个实例。如果用户指定了一个实例(例如,通过设置此缓存项或通过CMAKE_GENERATOR_instance环境变量),或者在首次配置构建树时选择了默认实例后,该值将在此变量中可用。
CMAKE_GENERATOR_PLATFORM3.1版新增。
用户提供的特定于发电机的目标平台规范。
一些CMake生成器支持为本机构建系统提供目标平台名称,以选择编译器工具链。如果用户指定了一个平台名称(例如,通过cmake-a选项或通过CMAKE_GENERATOR_PLATFORM环境变量),该值将在该变量中可用。
CMAKE_GENERATOR_TOOLSET用户提供的本机构建系统工具集规范。
CMAKE_IMPORT_LIBRARY_PREFIX链接到的导入库的前缀。
如果在此平台上使用,则用于导入库名称的前缀。
CMAKE_IMPORT_LIBRARY_SUFFIX链接到的导入库的后缀。
如果在此平台上使用,则用于导入库文件名结尾的后缀。
CMAKE_JOB_POOL_COMPILE此变量用于初始化所有目标上的JOB_POOL_COMPILE属性。
CMAKE_JOB_POOL_LINK此变量用于初始化所有目标上的JOB_POOL_LINK属性。
CMAKE_JOB_POOL_PRECOMPILE_HEADER此变量用于初始化所有目标上的JOB_POOL_PRECOMILE_HEADER属性
CMAKE_JOB_POOLS如果未设置JOB_POOLS全局属性,则将使用该变量的值。
CMAKE__COMPILER_AR为编译器添加了适当的–plugin选项
CMAKE__COMPILER_FRONTEND_VARIANT编译器前端变量的标识字符串。
有些编译器有多个不同的前端来接受命令行选项。(例如,Clang最初只有一个与GNU编译器兼容的前端,但由于其到Windows的端口(Clang Cl),它现在也支持与MSVC兼容的前端。)当CMake检测到这样的编译器时,它会将此变量设置为其前端类似的编译器的CMake__compiler_ID。
CMAKE__COMPILER_RANLIB为编译器添加了适当的–plugin选项
CMAKE__LINK_LIBRARY_SUFFIX链接到的库的语言特定后缀
CMAKE_LINK_LIBRARY_SUFFIX链接到的库的后缀。
用于库文件名结尾的后缀,在Windows上为.lib
CMAKE_LINK_SEARCH_END_STATIC结束链接线,以便使用静态系统库。
一些链接器支持诸如-Bstatic和-Bdynamic之类的开关,以确定-lXXX选项是使用静态库还是共享库。CMake使用这些选项为完整路径未知或(在某些情况下)位于平台隐式链接目录中的库设置链接类型。默认情况下,CMake会在库列表的末尾添加一个选项(如果需要),以将链接器搜索类型设置回其起始类型。此属性将最终链接器搜索类型切换为-Bstatic,而不管它是如何启动的。
CMAKE_LINK_SEARCH_START_STATIC假设链接器在默认情况下查找静态库。
一些链接器支持诸如-Bstatic和-Bdynamic之类的开关,以确定-lXXX选项是使用静态库还是共享库。CMake使用这些选项为完整路径未知或(在某些情况下)位于平台隐式链接目录中的库设置链接类型。默认情况下,链接器搜索类型假定为库列表开头的-Bdynamic。此属性将假设切换为-Bstatic。它用于静态链接可执行文件(例如使用GNU-static选项)。
CMAKE_MAJOR_VERSIONCMAKE_VERSION变量的第一个版本号组件。
CMAKE_MAKE_PROGRAM可以启动本机构建系统的工具。该值可以是可执行文件的完整路径,也可以只是工具名称(如果预期它在path中)。
CMAKE_MATCH_COUNT与上一个正则表达式匹配的次数。
使用正则表达式匹配时,CMake会使用匹配内容填充CMake_match_变量。CMAKE_MATCH_COUNT变量在填充匹配表达式时保留匹配表达式的数量。
CMAKE_MATCH_捕获由最后一个正则表达式匹配的组,用于组0到9。组0完全匹配。组1到9是由()语法捕获的子表达式。
使用正则表达式匹配时,CMake会使用匹配内容填充CMake_match_变量。CMAKE_MATCH_COUNT变量在填充匹配表达式时保留匹配表达式的数量。
CMAKE_MINIMUM_REQUIRED_VERSION当前变量作用域或任何父变量作用域中最近调用CMake_minimum_required(version)命令的CMake的版本。
CMAKE_MINOR_VERSIONCMAKE_VERSION变量的第二个版本号组件。
CMAKE_NETRC此变量用于初始化文件(DOWNLOAD)和文件(UPLOAD)命令的NETRC选项。
ExternalProject和FetchContent模块也使用此变量进行内部文件调用(DOWNLOAD)。
局部选项优先于此变量。
CMAKE_NETRC_FILE此变量用于初始化文件(DOWNLOAD)和文件(UPLOAD)命令的NETRC_FILE选项。
ExternalProject和FetchContent模块也使用此变量进行内部文件调用(DOWNLOAD)。
局部选项优先于此变量。
CMAKE_PARENT_LIST_FILE包含当前CMake文件的完整路径。
在处理include()或find_package()加载的CMake文件时,此变量包含包含该文件的文件的完整路径。include堆栈的顶部始终是当前目录的CMakeLists.txt。
CMAKE_PATCH_VERSIONCMAKE_VERSION变量的第三个版本号组件。
CMAKE_PROJECT_DESCRIPTION顶级项目的描述。
CMAKE_PROJECT_HOMEPAGE_URL顶级项目的主页URL。
CMAKE_PROJECT_NAME顶级项目的名称。
CMAKE_PROJECT_VERSION顶级项目的版本。
CMAKE_PROJECT_VERSION_MAJOR顶级项目的主要版本。
CMAKE_PROJECT_VERSION_PATCH顶级项目的修补程序版本。
CMAKE_PROJECT_VERSION_TWEAK顶级项目的调整版本。
CMAKE_RANLIB静态库的随机化工具的名称。
这指定在UNIX上随机化库的程序的名称,该程序在Windows上不使用,但可能存在。
CMAKE_ROOT安装运行cmake的目录。
这是正在运行的CMake的安装根目录,Modules目录可以在这里找到。这通常用于以下格式:${CMAKE_ROOT}/模块
CMAKE_RULE_MESSAGES指定是否为每个生成规则报告消息。
如果在缓存中设置,则用于初始化RULE_MESSAGES属性的值。用户可以禁用本地构建树中的选项,以禁用细粒度消息,并仅在Makefile构建中每个目标完成时进行报告。
CMAKE_SCRIPT_MODE_FILE当前正在处理的cmake -P脚本文件的完整路径。
当在cmake -P脚本模式下运行时,cmake将此变量设置为脚本文件的完整路径。当运行以配置CMakeLists.txt文件时,不会设置此变量。
CMAKE_SHARED_LIBRARY_PREFIX链接到的共享库的前缀。
用于共享库名称的前缀,在UNIX上为lib。
CMAKE_SHARED_LIBRARY_PREFIX_将覆盖语言。
CMAKE_SHARED_LIBRARY_SUFFIX链接到的共享库的后缀。
用于共享库文件名结尾的后缀,在Windows上为.dll。
CMAKE_SHARED_LIBRARY_SUFFIX_将覆盖语言。
CMAKE_SHARED_MODULE_PREFIX链接到的可加载模块的前缀。
用于此平台上可加载模块名称的前缀。
CMAKE_SHARED_MODULE_PREFIX_将覆盖语言。
CMAKE_SHARED_MODULE_SUFFIX链接到的共享库的后缀。
用于此平台上可加载模块文件名结尾的后缀
CMAKE_SHARED_MODULE_SUFFIX_将覆盖语言。
CMAKE_SIZEOF_VOID_P无效指针的大小。
这被设置为目标机器上指针的大小,并在启用编译语言时确定。如果找到64位大小,则修改库搜索路径以首先查找64位库。
CMAKE_SKIP_INSTALL_RULES是否禁用生成安装规则。
如果为TRUE,则CMake既不会生成安装规则,也不会生成CMake_install.CMake文件。默认情况下,此变量为FALSE。
CMAKE_SKIP_RPATH如果为true,请不要添加运行时路径信息。
如果设置为TRUE,则rpath信息不会添加到已编译的可执行文件中。默认情况下,如果平台支持,则添加rpath信息。这允许从构建树轻松运行。要在安装步骤中省略RPATH,而不是在生成步骤中省略,请改用CMAKE_SKIP_install_RPATH。要在生成步骤中省略RPATH,请使用CMAKE_SKIP_build_RPATH。
CMAKE_SOURCE_DIR指向源树顶层的路径。
这是当前CMake源树顶层的完整路径。对于源代码内构建,这将与CMAKE_BINARY_DIR相同。
在cmake -P脚本模式下运行时,cmake将变量CMAKE_BINARY_DIR、CMAKE_SOURCE_DIR、CMAKE_CURRENT_BINARY_DIR和CMAKE_CURRENT_SOURCE_DIR设置为当前工作目录。
CMAKE_STATIC_LIBRARY_PREFIX链接到的静态库的前缀。
用于静态库名称的前缀,在UNIX上为lib。
CMAKE_STATIC_LIBRARY_SUFFIX链接到的静态库的后缀。
用于静态库文件名结尾的后缀,在Windows上为.lib。
CMAKE_Swift_MODULE_DIRECTORYSwift模块输出目录。
此变量用于初始化所有目标上的Swift_MODULE_DIRECTORY属性。
CMAKE_Swift_NUM_THREADSSwift目标的并行编译线程数。
CMAKE_TOOLCHAIN_FILE提供给cmake的工具链文件的路径。
当使用CMake进行交叉编译时,会在命令行中指定此变量。它是在CMake运行早期读取的文件的路径,用于指定编译器和工具链实用程序以及其他目标平台和编译器相关信息的位置。相对路径是允许的,并且首先被解释为相对于生成目录,如果找不到,则解释为相对于源目录。如果CMAKE_TOOLCHAIN_FILE环境变量是在首次创建新的构建树时设置的,那么它将由该环境变量初始化。
CMAKE_TWEAK_VERSION定义为0是为了与为可能定义了更高值的旧CMake版本编写的代码兼容。
CMAKE_VERBOSE_MAKEFILE启用Makefile生成的详细输出。
此变量是由project()命令初始化(为FALSE)的缓存项。用户可以在本地构建树中启用该选项,以从Makefile构建中获得更详细的输出,并在启动时显示每个命令行。
CMAKE_VERSIONCMake版本字符串为三个由分隔的非负整数分量。以及可能跟在后面的-和其他信息。前两个组件表示特性级别,第三个组件表示bug修复级别或开发日期。
CMake的发布版本和发布候选版本使用以下格式:
[-rc]
其中分量小于20000000。CMake的开发版本使用以下格式:
<日期>[-]
其中组件的格式为CCYYYMDD,可以包含任意文本。这表示之后特定日期的发展功能发布。
变量中还提供了单个组件值:
CMAKE_MAJOR_VERSION
CMAKE_MINOR_VERSION
CMAKE_PATCH_VERSION
CMAKE_TWEAK_VERSION
使用if()命令VERSION_LESS、VERSION_GREATER、VERSION_EQUAL、VERSION_LESS_EQUAL或VERSION_GREATER_EQUAL运算符将版本字符串值与CMAKE_V进行比较
CMAKE_VS_DEVENV_COMMANDVisual Studio 9 2008及更高版本的生成器将此变量设置为与相应Visual Studio版本一起安装的devenv.com命令。请注意,此变量在Visual Studio学习版上可能为空,因为它们不提供此工具。
即使计算机上安装了devenv.com,其他生成器也不会定义此变量。
CMAKE_VS_MSBUILD_COMMANDVisual Studio 12 2013及更高版本的生成器将此变量设置为与相应Visual Studio版本一起安装的MSBuild.exe命令。
即使计算机上安装了MSBuild.exe,其他生成器也不会定义此变量。
CMAKE_VS_DEVENV_COMMAND也提供给Visual Studio的非速成版。
CMAKE_VS_NsightTegra_VERSION使用CMAKE_SYSTEM_NAME变量设置为Android的Visual Studio生成器时,此变量包含已安装的NVIDIA Nsight Tegra Visual Studio Edition的版本号。
CMAKE_VS_NUGET_PACKAGE_RESTORE使用Visual Studio生成器时,此缓存变量控制msbuild是否应在生成之前自动尝试还原NuGet包。可以使用目标上的VS_PACKAGE_REFERENCES属性来定义NuGet包。如果未定义包引用,则此设置将不起任何作用。
CMAKE_VS_PLATFORM_NAME当前生成器使用的Visual Studio目标平台名称。
VS8及以上版本允许项目文件指定目标平台。CMake在此变量中提供所选平台的名称。
CMAKE_VS_PLATFORM_NAME_DEFAULT当前生成器的Visual Studio目标平台名称的默认值,不考虑CMAKE_generator_platform变量的值。对于VS 2017及以下版本的Visual Studio生成器,这始终是Win32。对于VS 2019及以上版本,这是基于主机平台的。
CMAKE_VS_PLATFORM_TOOLSETVisual Studio平台工具集名称。
VS10及以上版本在后台使用MSBuild,并支持多个编译器工具链。CMake可以显式指定一个工具集,例如VS11的v110或VS10Express中支持64位的Windows7.1SDK。CMake在此变量中提供所选工具集的名称。
CMAKE_VS_PLATFORM_TOOLSET_CUDA要使用其Visual Studio工具集的NVIDIA CUDA Toolkit版本。
Visual Studio Generators for VS 2010及更高版本支持使用CUDA工具包提供的CUDA工具集。工具集版本号可以由CMAKE_GENERATOR_TOOLTEST中的字段指定,格式为cuda=8.0。或者,如果以CUDA=C:\path\to\CUDA的形式指定了独立CUDA目录的路径,则会自动检测到。如果未指定任何版本,CMake将选择默认版本。CMake在此变量中提供选定的CUDA工具集版本。如果未安装与Visual Studio集成的CUDA Toolkit,则该值可能为空。
CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR独立NVIDIA CUDA工具包的路径(例如,从安装程序中提取)。
Visual Studio Generators for VS 2010及更高版本支持使用独立(未安装)NVIDIA CUDA工具包。路径可以由CMAKE_GENERATOR_TOOLSET中的字段指定,格式为cuda=C:\path\to\cuda。给定目录的路径中必须至少包含nvcc编译器。\bin,并且必须在路径中提供Visual Studio集成文件。\extras\visual_studio_integration\MSBuildExtensions\。通过使用7zip打开安装程序或复制运行的安装程序提取的文件,可以创建一个独立的CUDA工具包目录。如果未指定指向独立CUDA Toolkit的路径,则该值可能为空
CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTUREVisual Studio首选的工具体系结构。
Visual Studio Generators for VS 2013及更高版本通过在CMAKE_GENERATOR_TOOLSET选项中指定host=x86或host=x64值来支持使用32位或64位主机工具链。CMake在此变量中提供选定的工具链体系结构首选项(x86、x64、ARM64或空)。
CMAKE_VS_PLATFORM_TOOLSET_VERSIONVisual Studio平台工具集版本。
Visual Studio Generators for VS 2017及更高版本允许选择同一工具集的次要版本。工具集版本号可以由CMAKE_GENERATOR_toolset中的字段指定,格式为version=14.11。如果未指定任何工具集,CMake将选择默认工具集。如果未选择次要版本并且使用默认版本,则该值可能为空。
如果该值不为空,则它是MSBuild在其Microsoft.VCToolsVersion.*.props文件名中使用的版本号。
版本3.19.7:VS 16.9的工具集也可以指定为14.28.16.9,因为VS 16.10使用的文件名是Microsoft.VCToolsVersion.14.28.16.9.props。
CMAKE_VS_TARGET_FRAMEWORK_IDENTIFIERVisual Studio目标框架标识符。
在某些情况下,Visual Studio生成器可能会为.csproj文件中的MSBuild TargetFrameworkIdentifier设置使用显式值。CMake提供此变量中的选定值。
CMAKE_VS_TARGET_FRAMEWORK_TARGETS_VERSIONVisual Studio目标框架的目标版本。
在某些情况下,Visual Studio生成器可能会为.csproj文件中的MSBuild TargetFrameworkTargetsVersion设置使用显式值。CMake提供此变量中的选定值。
CMAKE_VS_TARGET_FRAMEWORK_VERSIONVisual Studio目标框架版本。
在某些情况下,Visual Studio生成器可能会为.csproj文件中的MSBuild TargetFrameworkVersion设置使用显式值。CMake提供此变量中的选定值。
CMAKE_VS_VERSION_BUILD_NUMBERVisual Studio版本。
Visual Studio Generators for VS 2017及更高版本将此变量设置为Visual Studio版本内部版本号,格式为<日期>。
CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSIONVisual Studio Windows目标平台版本。
CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSIONVisual Studio Windows目标平台版本。
CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM覆盖VS 2015及更高版本的Windows 10 SDK最高版本。
CMAKE_XCODE_BUILD_SYSTEMXcode构建系统选择。
CMAKE_XCODE_PLATFORM_TOOLSETXcode支持从已安装的工具集中选择编译器。CMake提供该变量中所选工具集的名称,如果显式选择了任何工具集(例如通过CMake -T选项)。
_BINARY_DIR命名项目的顶级二进制目录。
将使用project()命令中使用的名称创建一个变量,该变量是项目的二进制目录。当add_subdirectory()用于连接多个项目时,这可能很有用。
_DESCRIPTION对项目名称为的project()命令的最近调用的DESCRIPTION选项给定的值(如果有的话)。
_HOMEPAGE_URL项目名称为的project()命令的最近一次调用的HOMEPAGE_URL选项的值(如果有的话)。
_IS_TOP_LEVEL一个布尔变量,指示是否在顶级CMakeLists.txt文件中调用了命名项目。
要从当前目录作用域或更高目录作用域中最近对project()的调用中获取值,请参阅project_IS_TOP_LEVEL变量。
_SOURCE_DIR命名项目的顶级源目录。
将使用project()命令中使用的名称创建一个变量,该变量是项目的源目录。当add_subdirectory()用于连接多个项目时,这可能很有用。
_VERSION最近调用项目名为的project()命令的VERSION选项的值(如果有的话)。
_VERSION_MAJOR由PROJECT()命令设置的_version变量的第一个版本号组件。
_VERSION_MINOR由PROJECT()命令设置的_version变量的第二个版本号组件。
_VERSION_PATCH由PROJECT()命令设置的_version变量的第三个版本号组件。
_VERSION_TWEAK由PROJECT()命令设置的_version变量的第四个版本号组件。
PROJECT_BINARY_DIR项目的生成目录的完整路径。
PROJECT_DESCRIPTION提供给项目命令的简短项目描述。
PROJECT_HOMEPAGE_URL项目的主页URL。
PROJECT_IS_TOP_LEVEL一个布尔变量,指示当前范围或更高范围中最近调用的project()命令是否在顶级CMakeLists.txt文件中。
PROJECT_NAME指定给项目命令的项目的名称。
PROJECT_SOURCE_DIR这是在当前目录作用域或其父目录中对project()命令进行的最后一次调用的源目录。注意,它不受子目录范围内对project()的调用的影响
PROJECT_VERSION最近一次调用project()命令的VERSION选项的值(如果有的话)。
PROJECT_VERSION_MAJORPROJECT_version变量的第一个版本号组件,由PROJECT()命令设置。
PROJECT_VERSION_MINORPROJECT_version变量的第二个版本号组件,由PROJECT()命令设置。
PROJECT_VERSION_PATCHPROJECT_version变量的第三个版本号组件,由PROJECT()命令设置。
PROJECT_VERSION_TWEAKPROJECT_version变量的第四个版本号组件,由PROJECT()命令设置。
  • 17
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值