当前位置: 首页 > news >正文

CMake中的变量: 改变构建行为的变量

文章目录

变量名称描述
BUILD_SHARED_LIBS全局标志,用于在启用时使add_library()创建共享库。 如果存在并且为true,则这将导致所有库被构建为共享库,除非该库被明确添加为静态库。这个变量通常作为option()添加到项目中,这样项目的每个用户都可以决定是使用共享库还是静态库来构建项目。
CMAKE_ABSOLUTE_DESTINATION_FILES使用绝对目的地路径安装的文件列表。 此变量由CMake生成的CMake_install.CMake脚本定义。它可以由源于这些安装脚本的程序或脚本使用(只读)。这被一些CPack生成器(例如RPM)使用。
CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY是否在add_custom_command()中默认启用DEPENDS_EXPLICIT_ONLY选项。
CMAKE_APPBUNDLE_PATH以分号分隔的目录列表,指定find_program()和find_package()命令使用的macOS应用程序包的搜索路径。
CMAKE_BUILD_TYPE指定单个配置生成器(例如Makefile generators或Ninja)上的生成类型。典型的值包括Debug、Release、RelWithDebInfo和MinSizeRel,但也可以定义自定义构建类型。 当首次创建新的构建树时,该变量由项目中调用的第一个project()或enable_language()命令初始化。如果设置了CMAKE_BUILD_TYPE环境变量,则使用其值。否则,在启用语言时,将选择特定于工具链的默认值。默认值通常是一个空字符串,但这通常是不可取的,其他标准构建类型通常更合适。
CMAKE_CLANG_VFS_OVERLAY当使用clang cl为windows进行交叉编译时,此变量可以是指向clang虚拟文件系统yaml文件的绝对路径,这将使clang cl能够解析区分大小写的文件系统上的windows标头名称。
CMAKE_CODEBLOCKS_COMPILER_ID更改生成的CodeBlocks项目文件中的编译器id。 CodeBlocks使用自己的编译器id字符串,该字符串不同于CMAKE__compiler_id。如果此变量为空,CMake将尝试自动识别CodeBlocks编译器id。否则,指定的字符串将在CodeBlocks项目文件中使用。有关有效的编译器id字符串,请参阅CodeBlocks文档。
CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES更改CodeBlocks生成器创建项目文件的方式。 如果此变量的计算结果为ON,生成器将从项目文件中排除位于项目根目录之外的任何文件。
CMAKE_CODELITE_USE_TARGETS更改CodeLite生成器创建项目文件的方式。 如果此变量在顶级CMakeLists.txt文件的末尾计算为ON,则生成器将基于目标而非项目创建项目文件。
CMAKE_COLOR_DIAGNOSTICS全程启用颜色诊断。 此变量使用三种状态:ON、OFF和未定义。 未定义时:Makefile生成器将CMAKE_COLOR_Makefile变量初始化为ON。它控制颜色构建系统消息。GNU/Clang编译器不使用任何颜色诊断标志进行调用。 打开时:Makefile生成器默认情况下生成彩色构建系统消息。CMAKE_COLOR_MAKEFILE未初始化,但可以显式设置为OFF以禁用彩色构建系统消息。GNU/Clang编译器的调用带有启用颜色诊断的标志(-fcolor diagnostics)。 关闭时:默认情况下,Makefile生成器不会生成彩色构建系统消息。CMAKE_COLOR_MAKEFILE未初始化,但可以显式设置为ON以启用彩色构建系统消息。GNU/Clang编译器的调用带有禁用颜色诊断的标志(-fno颜色诊断)。 如果设置了CMAKE_COLOR_DIAGNOSTICS环境变量,则使用其值。否则,CMAKE_COLOR_DIAGNOSTICS为否
CMAKE_COLOR_MAKEFILE使用Makefile生成器时启用颜色输出。 启用后,生成的Makefile将产生彩色输出。默认值为ON。
CMAKE_CONFIGURATION_TYPES以分号分隔的列表形式指定多配置生成器(例如Visual Studio、Xcode或Ninja multi-config)上的可用生成类型(配置)。典型的条目包括Debug、Release、RelWithDebInfo和MinSizeRel,但也可以定义自定义构建类型。 当首次创建新的构建树时,该变量由项目中调用的第一个project()或enable_language()命令初始化。如果设置了CMAKE_CONFIGURATION_TYPES环境变量,则使用其值。否则,默认值是特定于生成器的。
CMAKE_DEPENDS_IN_PROJECT_ONLY当在目录中设置为TRUE时,Makefile Generators生成的构建系统将被设置为仅考虑对出现在源目录或二进制目录中的源文件的依赖关系。对这些目录之外的源文件的更改不会导致重建。 在构建过程中通过外部头文件获取某些源文件的情况下,应谨慎使用此方法。
CMAKE_DISABLE_FIND_PACKAGE_用于禁用find_package()调用的变量。 通过将变量CMAKE_DISABLE_find_package_设置为TRUE,可以禁用项目中的每个非REQUIRED find_package()调用。这可以用于构建没有可选包的项目,尽管该包已安装。
CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES这个缓存变量由Eclipse项目生成器使用。
CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT这个缓存变量由Eclipse项目生成器使用。
CMAKE_ECLIPSE_MAKE_ARGUMENTS这个变量包含Eclipse调用make工具时使用的参数。默认情况下,它被初始化为保存标志以启用并行构建(通常使用-j)。
CMAKE_ECLIPSE_RESOURCE_ENCODING这个缓存变量告诉EclipseCDT4项目生成器在生成的项目文件中将资源编码设置为给定值。如果未给定任何值,则不会设置任何编码。
CMAKE_ECLIPSE_VERSION在使用Eclipse项目生成器时,CMake会尝试查找Eclipse可执行文件并检测其版本。根据找到的版本,某些功能会被启用或禁用。如果CMake找不到Eclipse,它将假定支持的最旧版本是EclipseCallisto(3.2)。
CMAKE_ERROR_DEPRECATED是否为不推荐使用的功能发出错误。 如果为TRUE,则使用不推荐使用的功能将出现致命错误。如果未设置此变量,则CMake的行为就像设置为FALSE一样。
CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION一旦遇到具有绝对install DESTINATION的文件,请要求cmake_install.cmake脚本出错。 致命错误是在安装有问题的文件之前发出的。此变量由CMake生成的CMake_install.CMake脚本使用。如果在运行脚本时将此变量设置为ON,则可能会收到来自脚本的致命错误消息。
CMAKE_EXECUTE_PROCESS_COMMAND_ECHO如果此变量设置为STDERR、STDOUT或NONE,则execute_process()调用中的命令将打印到STDERR或STDOUT,或者根本不打印。
CMAKE_EXPORT_COMPILE_COMMANDS在生成期间启用/禁用编译命令的输出。
CMAKE_EXPORT_PACKAGE_REGISTRY当CMP0090设置为NEW时,启用导出(PACKAGE)命令。
CMAKE_EXPORT_NO_PACKAGE_REGISTRYCMP0090未设置为NEW时,禁用export(PACKAGE)命令。
CMAKE_FIND_APPBUNDLE此变量影响find_*命令如何在macOS应用程序包和unix风格的包组件之间进行选择。
CMAKE_FIND_FRAMEWORK在Darwin或支持macOS应用程序捆绑包的系统上,CMAKE_FIND_APPBUNDLE变量可以设置为空或以下值之一: FIRST:尝试在标准程序之前查找应用程序捆绑包。这是达尔文的默认设置。 LAST:尝试在标准程序之后查找应用程序捆绑包。 ONLY:仅尝试查找应用程序捆绑包。 NEVER:永远不要尝试查找应用程序捆绑包。
CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX指定一个<suffix>来告诉find_library()命令在通常要搜索的每个lib目录之前先在lib<suffx>目录中进行搜索。 这将覆盖相关全局属性的行为: FIND_LIBRARY_USE_LIB32_path FIND_LIBRARY_USE_LIB64_path FIND_LIBRARY_USE_LIBX32_path
CMAKE_FIND_LIBRARY_PREFIXES查找库时要前置的前缀。 这指定在find_library()命令查找库时要添加到库名称的前缀。在UNIX系统上,这通常是lib,这意味着当试图查找foo库时,它将查找libfoo。
CMAKE_FIND_LIBRARY_SUFFIXES查找库时要附加的后缀。 这指定在find_library()命令查找库时要添加到库名称的后缀。在Windows系统上,这通常是.lib,根据编译器的不同,还有.dll.a、.a(例如GCC和Clang),因此当它试图查找foo库时,它会查找[]foo.lib和/或[]foo[.dll].a,这取决于所使用的编译器和CMAKE_find_library_PREFIXES中指定的。
CMAKE_FIND_NO_INSTALL_PREFIX从CMAKE_SYSTEM_PREFIX_PATH中排除CMAKE_INSTALL_PREFIX和CMAKE_STAGING_PREFIX变量的值。默认情况下,CMake会将这些项目目标前缀添加到CMake_SYSTEM_PREFIX_PATH中,以支持构建一系列依赖包并将其安装到公共前缀中。将CMAKE_FIND_NO_INSTALL_PREFIX设置为TRUE可抑制此行为。 CMAKE_SYSTEM_PREFIX_PATH在第一次调用project()或enable_language()命令时初始化。因此,必须在此之前设置CMAKE_FIND_NO_INSTALL_PREFIX才能生效。用户可以在命令行上将变量设置为高速缓存条目来实现这一点。 请注意,由于其他原因,前缀仍可能被搜索,例如与CMake安装的前缀相同,或者是内置的系统前缀。
CMAKE_FIND_PACKAGE_PREFER_CONFIG如果未指定模式,请告诉find_package()在"Module"模式之前尝试"配置"模式。 当在没有MODULE选项的情况下使用缩减签名时,命令find_package()在没有显式模式的情况下运行。在这种情况下,默认情况下,CMake首先通过搜索Find.CMake模块来尝试Module模式。如果失败,CMake将使用Config模式搜索包。 将CMAKE_FIND_PACKAGE_PREFER_CONFIG设置为TRUE,告诉FIND_PACKAGE()在返回模块模式之前先使用配置模式进行搜索。 当开发人员编译了通用库的自定义版本并希望将其链接到依赖项目时,此变量可能很有用。如果此变量设置为TRUE,则在查找开发人员自定义构建的库之前,将阻止依赖项目对find_package()的调用选择系统的find.cmake模块所定位的默认库。
CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS设置为TRUE可告诉find_package()调用解析_DIR值中的符号链接。 这在包搜索路径指向代理目录的用例中很有帮助,在该目录中会出现指向实际包位置的符号链接。默认情况下,这是不启用的,因为也有一些常见的用例应该保留符号链接。
CMAKE_FIND_PACKAGE_TARGETS_GLOBAL设置为TRUE会将find_package()发现的所有IMPORTED目标提升到全局作用域。 将其设置为TRUE类似于将GLOBAL指定为find_package()的参数。默认值为OFF。
CMAKE_FIND_PACKAGE_WARN_NO_MODULE如果在没有显式模式的情况下调用,请告诉find_package()发出警告。
CMAKE_FIND_ROOT_PATH要在文件系统上搜索的根路径的分号分隔列表。 此变量在交叉编译时最有用。CMake使用此列表中的路径作为替代根,以查找具有find_package()、find_library()等的文件系统项。
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE此变量控制FIND_FILE()和FIND_PATH()是否使用CMAKE_FIND_ROOT_PATH和CMAKE_SYSROOT。 如果设置为ONLY,则只搜索CMAKE_FIND_ROOT_PATH中的根。如果设置为"NEVER",则CMAKE_FIND_ROOT_PATH中的根将被忽略,并且只使用主机系统根。如果设置为BOTH,则将搜索主机系统路径和CMAKE_FIND_ROOT_PATH中的路径。
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY此变量控制find_library()是否使用CMAKE_FIND_ROOT_PATH和CMAKE_SYSROOT。 如果设置为ONLY,则只搜索CMAKE_FIND_ROOT_PATH中的根。如果设置为"NEVER",则CMAKE_FIND_ROOT_PATH中的根将被忽略,并且只使用主机系统根。如果设置为BOTH,则将搜索主机系统路径和CMAKE_FIND_ROOT_PATH中的路径。
CMAKE_FIND_ROOT_PATH_MODE_PACKAGE此变量控制find_package()是否使用CMAKE_FIND_ROOT_PATH和CMAKE_SYSROOT。 如果设置为ONLY,则只搜索CMAKE_FIND_ROOT_PATH中的根。如果设置为"NEVER",则CMAKE_FIND_ROOT_PATH中的根将被忽略,并且只使用主机系统根。如果设置为BOTH,则将搜索主机系统路径和CMAKE_FIND_ROOT_PATH中的路径。
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM此变量控制find_program()是否使用CMAKE_FIND_ROOT_PATH和CMAKE_SYSROOT。 如果设置为ONLY,则只搜索CMAKE_FIND_ROOT_PATH中的根。如果设置为"NEVER",则CMAKE_FIND_ROOT_PATH中的根将被忽略,并且只使用主机系统根。如果设置为BOTH,则将搜索主机系统路径和CMAKE_FIND_ROOT_PATH中的路径。
CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH控制以下命令的默认行为,以确定是否搜索cmake特定环境变量提供的路径: find_program() find_file() find_library() find_package() find_path() 这在交叉编译环境中非常有用。默认情况下,不设置此变量,这相当于它的值为TRUE。为上述命令提供的显式选项优先于此变量。
CMAKE_FIND_USE_CMAKE_PATH控制以下命令的默认行为,以确定是否搜索cmake特定环境变量提供的路径: find_program() find_file() find_library() find_package() find_path() 这在交叉编译环境中非常有用。默认情况下,不设置此变量,这相当于它的值为TRUE。为上述命令提供的显式选项优先于此变量。
CMAKE_FIND_USE_CMAKE_SYSTEM_PATH控制以下命令的默认行为,以确定是否搜索cmake特定环境变量提供的路径: find_program() find_file() find_library() find_package() find_path() 这在交叉编译环境中非常有用。默认情况下,不设置此变量,这相当于它的值为TRUE。为上述命令提供的显式选项优先于此变量。
CMAKE_FIND_USE_INSTALL_PREFIX控制以下命令的默认行为,以确定是否搜索CMAKE_INSTALL_PREFIX和CMAKE_STAGING_PREFIX变量中的位置。 find_program() find_file() find_library() find_package() find_path() 这在交叉编译环境中非常有用。由于与CMAKE_FIND_NO_INSTALL_PREFIX的向后兼容性,FIND命令的行为会根据此变量是否存在而更改。
CMAKE_FIND_USE_PACKAGE_REGISTRY控制find_package()命令的默认行为,用于是否搜索用户包注册表提供的路径。 默认情况下,未设置此变量,并且行为将回退到不推荐使用的CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY变量所确定的行为。如果也未设置,则find_package()将使用用户包注册表,除非提供了NO_CMAKE_package_Registry选项。 当两者都设置时,此变量优先于CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY。 在某些情况下,例如,为了只定位系统范围内的安装,在搜索包时不希望使用用户包注册表。如果CMAKE_FIND_USE_PACKAGE_REGISTRY变量为FALSE,则所有FIND_PACKAGE()命令都将跳过用户程序包注册表,就像它们是用NO_CMAKE_PACKAGE_REGISTRY参数调用的一样。
CMAKE_FIND_USE_PACKAGE_ROOT_PATH控制以下命令的默认行为,以确定是否搜索_ROOT变量提供的路径: find_program() find_file() find_library() find_package() find_path() 默认情况下,不设置此变量,这相当于它的值为TRUE。为上述命令提供的显式选项优先于此变量。
CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH控制以下命令的默认行为,以确定是否搜索标准系统环境变量提供的路径: find_program() find_file() find_library() find_package() find_path() 这在交叉编译环境中非常有用。默认情况下,不设置此变量,这相当于它的值为TRUE。为上述命令提供的显式选项优先于此变量。
CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY控制通过find_Package()命令搜索系统包注册表。 默认情况下,未设置此变量,并且行为将回退到不推荐使用的CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY变量所确定的行为。如果也未设置,则find_package()将使用系统包注册表,除非提供了NO_CMAKE_System_package_Registry选项。 当两者都设置时,此变量优先于CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY。 在某些情况下,例如,为了只定位用户特定的安装,在搜索包时不希望使用系统包注册表。如果CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY变量为FALSE,则所有FIND_PACKAGE()命令都将跳过系统包注册表,就像它们是用NO_CMAKE_SYSTEM-PACKAGE_REGISTRY参数调用的一样。
CMAKE_FRAMEWORK_PATH以分号分隔的目录列表,指定find_library()、find_package()、find_path()和find_file()命令使用的macOS框架的搜索路径。
CMAKE_IGNORE_PATH对于find_program()、find_library()、find_file()和find_path(),在其中一个列出的目录中找到的任何文件都将被忽略。列出的目录不递归应用,因此任何要忽略的子目录也必须显式列出。CMAKE_IGNORE_PATH不会影响这四个命令使用的搜索前缀。要忽略搜索前缀下的各个路径(例如bin、include、lib等),每个路径必须在CMAKE_ignore_path中作为完整的绝对路径列出。CMAKE_IGNORE_REFIX_PATH提供了一种更合适的方法来忽略整个搜索前缀。 find_package()也会受到CMAKE_IGNORE_PATH的影响,但仅适用于配置模式搜索。在其中一个指定目录中找到的任何<Name>Config.cmake或<Name>-Config.cmake文件都将被忽略。此外,由于向后兼容性的原因,在CMAKE_IGNORE_PATH中找到的任何搜索前缀都将被跳过,但新代码应该更喜欢
CMAKE_IGNORE_PREFIX_PATH要由find_program()、find_library()、find_file()和find_path()命令忽略的搜索前缀的分号分隔列表。find_package()命令的Config模式也会忽略前缀(Module模式不受影响)。要忽略特定目录,请参阅CMAKE_ignore_PATH。 在某些系统目录包含不兼容但可能可链接的库的交叉编译环境中,忽略搜索位置可能很有用。例如,在交叉编译的集群环境中,这允许用户忽略包含用于前端机器的库的目录。 默认情况下,CMAKE_IGNORE_PREFIX_PATH为空。它是由项目或最终用户设置的。
CMAKE_INCLUDE_DIRECTORIES_BEFORE默认情况下,是否在include_directories()中附加或预附加目录。 此变量影响include_directories()命令的默认行为。将该变量设置为ON相当于在该命令的所有使用中使用BEFORE选项。
CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE是否强制准备项目包含目录。 此变量影响编译器命令行中生成的include目录的顺序。如果设置为ON,则会首先出现CMAKE_SOURCE_DIR和CMAKE_BINARY_DIR。
CMAKE_INCLUDE_PATH用分号分隔的目录列表,指定find_file()和find_path()命令的搜索路径。默认情况下,它为空,由项目设置。 还有一个环境变量CMAKE_INCLUDE_PATH,用作搜索目录的附加列表。
CMAKE_INSTALL_DEFAULT_COMPONENT_NAMEinstall()命令中使用的默认组件。 如果使用install()命令而不使用COMPONENT参数,则这些文件将被分组到默认组件中。此默认安装组件的名称将取自此变量。它默认为"Unspecified"。
CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONSinstall()和file(install)在安装文件期间隐式创建的目录的默认权限。 如果调用make-install并隐式创建目录,则它们将获得由CMAKE_install_DEFAULT_DIRECTORY_permissions变量设置的权限,如果未设置该变量,则获得特定于平台的默认权限。 如果未通过install()命令显式安装但需要在特定路径上安装文件,则会创建隐式创建的目录。此类位置的示例是由于设置CMAKE_INSTALL_PREFIX而创建的目录。 CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS变量的预期内容是INSTALL()命令PERMISSIONS部分可以使用的权限列表。
CMAKE_INSTALL_MESSAGECMAKE_INSTALL_MESSAGE变量可以设置为控制打印哪些消息: ALWAYS:打印“正在安装”和“最新”消息。 LAZY:打印正在安装但不是最新消息。 NEVER:既不打印“正在安装”消息,也不打印最新消息。 其他值具有未定义的行为,可能无法诊断。 如果未设置此变量,则默认行为为ALWAYS。
CMAKE_INSTALL_PREFIXInstall()使用的安装目录。 如果调用了make-install或生成了install,则该目录将预先添加到所有安装目录中。此变量在UNIX上默认为/usr/local,在Windows上默认为c:/Program Files/${PROJECT_NAME}。
CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT当CMake_INSTALL_PREFIX刚刚初始化为其默认值时,通常在新构建树中首次运行CMake时,CMake会将此变量设置为TRUE值。
CMAKE_KATE_FILES_MODE此缓存变量由Kate项目生成器使用,并控制将项目文件中的文件条目设置为何种模式。 可能的值有AUTO、SVN、GIT、HG、FOSSIL和LIST。 当设置为LIST时,CMake将把CMake已知的源文件列表放在项目文件中。当设置为SVN、GIT、HG或FOSSIL时,CMake将相应地将生成的项目设置为Subversion、GIT、Mercurial或FOSSIL,然后Kate将使用相应的命令行工具检索项目中的文件列表。当取消设置或设置为AUTO时,CMake将尝试检测源目录是否是git或svn签出的一部分,并将相应的条目放入项目文件中。
CMAKE_KATE_MAKE_ARGUMENTS此缓存变量由Kate项目生成器使用。 这个变量包含Kate调用make工具时使用的参数。默认情况下,它被初始化为保存标志以启用并行构建(通常使用-j)。
CMAKE_LIBRARY_PATH用分号分隔的目录列表,指定find_library()命令的搜索路径。默认情况下,它为空,由项目设置。 还有一个环境变量CMAKE_LIBRARY_PATH,用作搜索目录的附加列表。
CMAKE_LINK_DIRECTORIES_BEFORE默认情况下,是在link_directories()中附加目录还是预附加目录。 此变量影响link_directories()命令的默认行为。将该变量设置为ON相当于在该命令的所有使用中使用BEFORE选项。
CMAKE_LINK_LIBRARIES_ONLY_TARGETS设置此变量可在创建非导入目标时初始化其LINK_LIBRARIES_ONLY_TARGETS属性。将其设置为true可以额外检查target_link_libraries()命名的所有可以作为目标名称的项是否都是现有目标的名称。有关详细信息,请参阅目标属性文档。
CMAKE_MAXIMUM_RECURSION_DEPTHCMake脚本的最大递归深度。它打算在命令行上用-DCMAKE_MAXIMUM_RECURSION_DEPTH=设置,或者由需要大递归深度的项目在CMakeLists.txt中设置。
CMAKE_MESSAGE_CONTEXT当cmake–log上下文命令行选项或CMAKE_MESSAGE_CONTEXT_SHOW变量启用时,MESSAGE()命令会将CMAKE_MESSAGE_CONTEXT列表转换为一个由方括号包围的点分隔字符串,并将其置于日志级别NOTICE及以下消息的每一行之前。 为了有效地记录上下文,项目通常应该将一个项APPEND和POP_BACK添加到CMAKE_MESSAGE_CONTEXT的当前值,而不是替换它。项目不应该假设源树顶部的消息上下文为空,因为在某些情况下,上下文可能已经设置好了(例如分层项目)。
CMAKE_MESSAGE_CONTEXT_SHOW将此变量设置为true可以显示message()命令记录的每一行的上下文(有关上下文本身的指定方式,请参阅CMAKE_MESSAGE_CONTEXT)。 此变量是在cmake命令行上提供–log上下文选项的替代选项。尽管命令行选项将仅适用于该一次CMake运行,但将CMake_MESSAGE_CONTEXT_SHOW设置为true作为缓存变量将确保后续CMake的运行将继续显示消息上下文。 项目不应设置CMAKE_MESSAGE_CONTEXT_SHOW。它适用于用户,以便他们可以控制是否在消息中包含上下文。
CMAKE_MESSAGE_INDENTmessage()命令连接该列表中的字符串,对于NOTICE及以下的日志级别,它会在消息的每一行中预先添加结果字符串。
CMAKE_MESSAGE_LOG_LEVEL设置时,此变量指定message()命令使用的日志记录级别。有效值与cmake程序的–log级别命令行选项的有效值相同。如果设置了此变量,并提供了–log级别的命令行选项,则命令行选项优先。 使用此变量的主要优点是在CMake运行之间保持日志级别。将其设置为缓存变量将确保后续CMake运行将继续使用所选的日志级别。 项目不应该设置这个变量,它是为用户准备的,这样他们就可以根据自己的需要控制日志级别。
CMAKE_MFC_FLAG将MFC库用于可执行文件或dll。 允许使用Microsoft基础类(MFC)。对于静态MFC库,它应该设置为1,对于共享MFC库,应该设置为2。这在Visual Studio项目文件中使用。
CMAKE_MODULE_PATH以分号分隔的目录列表,使用正斜杠表示,在检查CMake附带的默认模块之前,指定要由include()或find_package()命令加载的CMake模块的搜索路径。默认情况下为空。它将由项目设置。
CMAKE_POLICY_DEFAULT_CMPCMake Policy CMP<NNNN>在其他情况下未设置时的默认值。
CMAKE_POLICY_WARNING_CMP当CMake_Policy()未显式或CMake_minimum_required()未隐式设置CMake Policy CMP<NNNN>时,显式启用或禁用警告。
CMAKE_PREFIX_PATH用分号分隔的目录列表,指定find_package()、find_program()、find_library()、查找_file()和查找路径()命令要搜索的安装前缀。每个命令都会根据自己的文档中的指定添加适当的子目录(如bin、lib或include)。 默认情况下,此字段为空。它将由项目设置。 还有一个环境变量CMAKE_PREFIX_PATH,用作搜索前缀的附加列表。
CMAKE_PROGRAM_PATH用分号分隔的目录列表,指定find_program()命令的搜索路径。默认情况下,它为空,由项目设置。 还有一个环境变量CMAKE_PROGRAM_PATH,用作搜索目录的附加列表。
CMAKE_PROJECT_INCLUDE要作为所有project()命令调用的最后一步包含的CMake语言文件或模块。这是为了在不修改源代码的情况下将自定义代码注入到项目构建中。
CMAKE_PROJECT_INCLUDE_BEFORE要作为所有project()命令调用的第一步包含的CMake语言文件或模块。这是为了在不修改源代码的情况下将自定义代码注入到项目构建中。。
CMAKE_PROJECT__INCLUDECMake语言文件或模块,作为指定<project-NAME>为项目名称的任何project()命令调用的最后一步。这是为了在不修改源代码的情况下将自定义代码注入到项目构建中。
CMAKE_PROJECT__INCLUDE_BEFORE作为任何指定<project-NAME>为项目名称的project()命令调用的第一步,要包含的CMake语言文件或模块。这是为了在不修改源代码的情况下将自定义代码注入到项目构建中。
CMAKE_PROJECT_TOP_LEVEL_INCLUDES要作为第一个project()调用的一部分包含的CMake语言文件的分号分隔列表。在读取工具链文件(如果指定了一个)并设置平台变量之后,但在启用任何语言之前,这些文件将立即包含在内。因此,可能不会设置特定于语言的变量,包括CMAKE__COMPILER。
CMAKE_REQUIRE_FIND_PACKAGE_用于调用find_package()的变量REQUIRED。 通过将变量CMAKE_REQUIRE_FIND_PACKAGE_设置为TRUE,可以将项目中的每个非REQUIRED find_package()调用转换为REQUIRED。这可以用来断言关于构建环境的假设,并确保如果这些假设不成立,构建将提前失败。
CMAKE_SKIP_INSTALL_ALL_DEPENDENCY不要让安装目标依赖于所有目标。 默认情况下,安装目标取决于所有目标。这样做的效果是,当调用makeinstall或构建install时,首先构建所有目标,然后开始安装。如果CMAKE_SKIP_INSTALL_ALL_DEPENDENCY设置为TRUE,则不会创建此依赖项,因此安装过程将立即启动,与项目是否已完全构建无关。
CMAKE_STAGING_PREFIX此变量可以设置为交叉编译时要安装到的路径。如果CMAKE_SYSROOT中的路径是只读的,或者应该保持原始状态,那么这可能很有用。 CMAKE_STAGING_PREFIX位置也被find_*命令用作搜索前缀。这可以通过设置CMAKE_FIND_NO_INSTALL_PREFIX变量来控制。 如果传递给链接器的任何RPATH/RUNPATH条目包含CMAKE_STAGING_PREFIX,则匹配的路径片段将替换为CMAKE_INSTALL_PREFIX。
CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS此变量包含一个env-var列表,作为语法为var=value的令牌列表
CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE如果此变量在顶级CMakeLists.txt文件的末尾计算为ON,则Sublime Text 2额外生成器会将构建树从.spreme项目中排除(如果它在源树中)。
CMAKE_SUPPRESS_REGENERATION如果默认情况下CMAKE_SUPPRESS_REGERATION为OFF,则CMAKE会添加一个所有其他目标所依赖的特殊目标,该目标将检查生成系统,并在目标规范源更改时重新运行CMAKE以重新生成生成系统。 如果此变量在顶级CMakeLists.txt文件的末尾计算为ON,则CMake将不会向生成系统添加重新生成目标,也不会执行任何生成系统检查。
CMAKE_SYSROOT在–sysroot标志中传递给编译器的路径。 CMAKE_SYSROOT内容在–SYSROOT标志中传递给编译器(如果支持的话)。如果安装时需要,该路径也会从RPATH/RUNPATH中剥离。CMAKE_SYSROOT还用于为find_*命令搜索的路径添加前缀。 只能在CMAKE_TOOLCHAIN_FILE变量指定的工具链文件中设置此变量。
CMAKE_SYSROOT_COMPILE编译源文件时在–sysroot标志中传递给编译器的路径。这与CMAKE_SYSROOT相同,但仅用于编译源,而不用于链接。
CMAKE_SYSROOT_LINK链接时在–sysroot标志中传递给编译器的路径。这与CMAKE_SYSROOT相同,但仅用于链接而非编译源。
CMAKE_SYSTEM_APPBUNDLE_PATHfind_program()和find_package()命令使用的macOS应用程序包的搜索路径。默认情况下,它包含当前系统的标准目录。项目不打算修改它,请使用CMAKE_APPBUNDLE_PATH。
CMAKE_SYSTEM_FRAMEWORK_PATHfind_library()、find_package()、find_path()和find_file()命令使用的macOS框架的搜索路径。默认情况下,它包含当前系统的标准目录。项目不打算修改它,请使用CMAKE_FRAMEWORK_PATH。
CMAKE_SYSTEM_IGNORE_PATH以分号分隔的目录列表将被各种find_*()命令忽略。
CMAKE_SYSTEM_IGNORE_PREFIX_PATH要由find_program()、find_library()、find_file()和find_path()命令忽略的搜索前缀的分号分隔列表。find_package()命令的Config模式也会忽略前缀(Module模式不受影响)。
CMAKE_SYSTEM_INCLUDE_PATH用分号分隔的目录列表,指定find_file()和find_path()命令的搜索路径。默认情况下,它包含当前系统的标准目录。
CMAKE_SYSTEM_LIBRARY_PATH用分号分隔的目录列表,指定find_library()命令的搜索路径。默认情况下,它包含当前系统的标准目录。
CMAKE_SYSTEM_PREFIX_PATH用分号分隔的目录列表,指定find_package()、find_program()、find_library()、find_file()和find_path()命令要搜索的安装前缀。每个命令都会根据自己的文档中的指定添加适当的子目录(如bin、lib或include)。 默认情况下,它包含当前系统的系统目录、CMAKE_INSTALL_PREFIX和CMAKE_STAGING_PREFIX。通过在第一次project()调用之前设置CMAKE_FIND_NO_INSTALL_PREFIX变量,可以排除安装和暂存前缀。 CMAKE_SYSTEM_PREFIX_PATH中包含的系统目录是通常包括已安装软件的位置。一个示例是基于UNIX的平台的/usr/local。除了标准平台位置外,CMake还将根据环境变量向CMake_SYSTEM_PREFIX_PATH添加值。CMake使用的环境变量和搜索位置可能会随着时间的推移而变化,因为平台及其约定: CrayLinuxEnvironment: ENV{SYSROOT_DIR}/ ENV{SYSROOT_DIR}/usr ENV{SYSROOT_DIR}/usr/local Darwin: ENV{SDKROOT}/usr When CMAKE_OSX_SYSROOT is not explicitly specified. OpenBSD: ENV{LOCALBASE} Unix: ENV{CONDA_PREFIX} when using a conda compiler MSYSTEM environment with MinGW toolchain: New in version 3.28. ENV{MSYSTEM_PREFIX}/local ENV{MSYSTEM_PREFIX} Windows: ENV{ProgramW6432} ENV{ProgramFiles} ENV{ProgramFiles(x86)} ENV{SystemDrive}/Program Files ENV{SystemDrive}/Program Files (x86)
CMAKE_SYSTEM_PROGRAM_PATH用分号分隔的目录列表,指定find_program()命令的搜索路径。默认情况下,它包含当前系统的标准目录。
CMAKE_TLS_CAINFO指定file(DOWNLOAD)和file(UPLOAD)命令的TLS_CAINFO选项的默认值。默认情况下未设置。 ExternalProject和FetchContent模块也使用此变量进行内部文件调用file(DOWNLOAD)。
CMAKE_TLS_VERIFY为file(DOWNLOAD)和file(UPLOAD)命令的TLS_VERIFY选项指定默认值。如果未设置,则默认设置为禁用。 ExternalProject和FetchContent模块也使用此变量进行内部文件调用file(DOWNLOAD)。 TLS验证可以帮助提供连接到所需服务器的信心。下载已知内容时,还应该使用文件哈希进行验证。
CMAKE_USER_MAKE_RULES_OVERRIDE指定替代平台信息的CMake文件。
CMAKE_WARN_DEPRECATED是否对不推荐使用的功能发出警告。
CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION每次遇到具有绝对install DESTINATION的文件时,请要求cmake_install.cmake脚本发出警告。 此变量由CMake生成的CMake_install.CMake脚本使用。如果在运行脚本时将此变量设置为ON,则可能会收到来自脚本的警告消息。
CMAKE_XCODE_GENERATE_SCHEME如果启用,Xcode生成器将生成模式文件。这些对于从命令行调用分析、归档、构建以进行测试和测试操作非常有用。
CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY如果启用,Xcode生成器将只为最顶层的project()命令生成一个Xcode项目文件,而不是为每个project()。
CMAKE_XCODE_LINK_BUILD_PHASE_MODE此变量用于初始化目标上的XCODE_LINK_BUILD_PHASE_MODE属性。它会影响Xcode生成器用来链接不同类型库的方法。其默认值为NONE。
CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER是否在生成的Xcode方案的Diagnostics部分启用Address Sanitizer。 此变量初始化所有目标上的XCODE_SCHEME_ADDRESS_SANITIZER属性。
CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN在生成的Xcode方案的Diagnostics部分中,是否启用返回后检测堆栈的使用。
CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING在生成的Xcode方案的“选项”部分中使用文档版本浏览器时,是否启用“允许调试”。
CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER是否在生成的Xcode方案的诊断部分禁用主线程检测器。
CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS是否在生成的Xcode方案的“诊断”部分中启用“动态库加载”。
CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE是否在生成的Xcode方案的诊断部分中启用动态链接器API使用。
CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION生成的Xcode方案的“选项”部分中的Metal:neneneba API验证的属性值。
CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE生成的Xcode方案的“选项”部分中GPU帧捕获的属性值。示例值为 Metal 和Disabled
CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION生成的Xcode方案的“选项”部分中 Metal: Shader Validation的属性值。
CMAKE_XCODE_SCHEME_ENVIRONMENT指定应添加到生成的Xcode方案的Arguments部分的环境变量。 如果设置为环境变量和MYVAR=值形式的值的列表,则这些环境变量将添加到方案中。
CMAKE_XCODE_SCHEME_GUARD_MALLOC是否在生成的Xcode方案的Diagnostics部分启用Guard Malloc。 此变量初始化所有目标上的XCODE_SCHEME_GUARD_MALLOC属性。
CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION设置生成配置以运行目标。 此变量初始化所有目标上的XCODE_SCHEME_LAUNCH_CONFIGURATION属性。
CMAKE_XCODE_SCHEME_LAUNCH_MODE生成的Xcode方案的“信息”部分中Launch的属性值。 此变量初始化所有目标上的XCODE_SCHEME_LAUNCH_MODE属性。
CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP是否在生成的Xcode方案的“诊断”部分中启用“主线程检测器”选项“在出现问题时暂停”。 此变量初始化所有目标上的XCODE_SCHEME_MAIN_THRAD_CHECKER_STOP属性。
CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES是否在生成的Xcode方案的Diagnostics部分启用Malloc Guard Edges。
CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE是否在生成的Xcode方案的诊断部分启用Malloc Scribble。
CMAKE_XCODE_SCHEME_MALLOC_STACK是否在生成的Xcode方案的Diagnostics部分启用Malloc Stack。
CMAKE_XCODE_SCHEME_THREAD_SANITIZER是否在生成的Xcode方案的Diagnostics部分启用Thread Sanitizer。
CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP是否启用Thread Sanitizer-在生成的Xcode方案的Diagnostics部分中的问题上暂停。
CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP是否在生成的Xcode方案的Diagnostics部分中启用Undefined Behavior Sanitizer选项Pause on issues。
CMAKE_XCODE_SCHEME_WORKING_DIRECTORY在生成的Xcode方案中指定运行和配置文件操作的工作目录。
CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS是否在生成的Xcode方案的Diagnostics部分启用Zombie Objects。
CMAKE_XCODE_XCCONFIG如果设置,Xcode生成器将指定的文件注册为全局XCConfig文件。有关目标级别XCConfig文件,请参阅XCODE_XCConfig目标属性。
_ROOT对find_package()的调用将在_ROOT CMake变量指定的前缀中进行搜索,其中<PackageName]是给find_packaging()调用的(保留大小写)名称,_ROOT是文字。例如,find_package(Foo)将搜索Foo_ROOT CMake变量中指定的前缀(如果已设置)。

相关文章:

  • 软件测试用例与分类
  • 缓存-基础理论和Guava Cache介绍
  • spring面试题笔记
  • 行为型模式-命令模式
  • 入门 对有序数组进行二分搜索 + 图解 (下篇)
  • SpringCloud——服务网关——GateWay
  • 关于electron打包卡在winCodeSign下载问题
  • sql学习笔记(三)
  • menuTreeRef.value?.getCheckedKeys(true) as string[]
  • mysql根据条件导出表数据(`--where=“文本“`)
  • vue 项目的屏幕自适应方案
  • wpf Grid布局详解 `Auto` 和 `*` 是两种常见的设置方式 行或列占多个单元格,有点像excel里的合并单元格。使其余的列平均分配剩余的空间
  • C# set的一些使用方法
  • 提升ChatGPT答案质量和准确性的方法Prompt专家
  • react_11
  • hexo+github搭建个人博客
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 【剑指offer】让抽象问题具体化
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • ES10 特性的完整指南
  • golang中接口赋值与方法集
  • Java新版本的开发已正式进入轨道,版本号18.3
  • opencv python Meanshift 和 Camshift
  • Python - 闭包Closure
  • tab.js分享及浏览器兼容性问题汇总
  • vue学习系列(二)vue-cli
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 百度地图API标注+时间轴组件
  • 翻译--Thinking in React
  • 马上搞懂 GeoJSON
  • 说说动画卡顿的解决方案
  • 06-01 点餐小程序前台界面搭建
  • Hibernate主键生成策略及选择
  • 仓管云——企业云erp功能有哪些?
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (23)Linux的软硬连接
  • (4)(4.6) Triducer
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (六)Hibernate的二级缓存
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • ***详解账号泄露:全球约1亿用户已泄露
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET 命令行参数包含应用程序路径吗?
  • .net流程开发平台的一些难点(1)
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • /usr/bin/env: node: No such file or directory
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • @synthesize和@dynamic分别有什么作用?