CMake 变量参考

Qt 编译变量

在构建 Qt 时,您可以使用 CMake 变量来控制构建结果。

变量描述
QT_HOST_PATH主机 Qt 安装的位置,在构建另一个 Qt 项目(无论是常规的还是交叉编译的)时,可能会从中使用主机工具。
QT_FORCE_BUILD_TOOLS即使已经找到主机工具,也强制构建工具。当交叉编译 Qt 以确保 SDK 有交叉构建的工具时很有用。
QT_FORCE_FIND_TOOLS在您不进行交叉编译的情况下,使用位于 QT_HOST_PATH 的预构建 Qt 中的 Qt 工具。只有当 QT_FORCE_BUILD_TOOLS 设置为 ON 时,此变量才生效。否则,QT_FORCE_FIND_TOOLS 不影响默认行为。

模块变量

使用 find_package 加载的 Qt 模块设置各种变量。

注意:您很少需要直接访问这些变量。通常,像链接模块的常见任务应该通过每个模块定义的库目标来完成。

例如,当 find_package(Qt6 COMPONENTS Widgets) 成功时,以下变量将可用:

变量描述
Qt6Widgets_COMPILE_DEFINITIONS用于构建库的编译定义列表。
Qt6Widgets_DEFINITIONS用于构建库的定义列表。
Qt6Widgets_EXECUTABLE_COMPILE_FLAGS构建库的可执行文件时使用的标志字符串。
Qt6Widgets_FOUND一个布尔值,表示是否成功找到模块。
Qt6Widgets_INCLUDE_DIRS构建库时使用的包含目录列表。
Qt6Widgets_LIBRARIES模块的导入目标名称: Qt6::Widgets
Qt6Widgets_PRIVATE_INCLUDE_DIRS构建库时使用私有 Qt API 的私有包含目录列表。
Qt6Widgets_VERSION包含模块版本的字符串。

对于使用 find_package 发现的所有包,都提供了这些变量的等效变量;它们是大小写敏感的。

安装变量

此外,还有一些与特定包无关,但与 Qt 安装本身有关的变量。

变量描述

QT_DEFAULT_MAJOR_VERSION

一个整数,它控制混合 Qt 5 和 Qt 6 项目的 qt_ 命令将转发的 Qt 版本。在相应的 find_package() 调用之前需要将其设置为 56

如果设置为 5,则从 qt_ 开始的命令将调用它们相应的从 qt5_ 开始的命令。如果设置为 6,它们将调用它们相应的从 qt6_ 开始的命令。

如果没有设置,则第一个 find_package 调用定义了默认版本。

QT_LIBINFIX用于库名称中后缀的字符串,当Qt配置使用-libinfix时。

QT_NO_CREATE_VERSIONLESS_FUNCTIONS

隐藏以qt_开头的命令,只留下以qt6_开头带有版本号的命令。

QT_NO_CREATE_VERSIONLESS_TARGETS

隐藏以Qt::开头导入的目标。相反,您需要使用以Qt6::开头的目标。
QT_VISIBILITY_AVAILABLE在Unix上,一个布尔值,描述Qt库和插件是否是用-fvisibility=hidden编译的。这意味着只有选定符号被导出。

项目变量

这些变量可以影响Qt提供的CMake命令。它们可以被项目、工具链文件或其他第三方包设置。

Qt6::Core

ANDROID_NDK_HOST_SYSTEM_NAME

主机系统的Android特定架构

ANDROID_SDK_ROOT

Android SDK的位置

QT_ANDROID_ABIS

项目打包编译的 ABI 列表

QT_ANDROID_APPLICATION_ARGUMENTS

要传递给Android应用程序的参数列表

QT_ANDROID_BUILD_ALL_ABIS

启用使用自动检测的Qt for Android SDK列表构建多ABI包

QT_ANDROID_DEPLOYMENT_TYPE

强制或禁用无论构建类型如何都进行发布包签名

QT_ANDROID_MULTI_ABI_FORWARD_VARS

允许多ABI构建中共享CMake变量

QT_ANDROID_SIGN_AAB

使用指定的密钥库、别名和存储密码对.aab包进行签名

QT_ANDROID_SIGN_APK

使用指定的密钥库、别名和存储密码对包进行签名

QT_DEPLOY_BIN_DIR

在某些目标平台上部署运行时二进制文件的基相对子目录

QT_DEPLOY_IGNORED_LIB_DIRS

在运行时依赖关系搜索中排除的目录

QT_DEPLOY_LIBEXEC_DIR

在某些目标平台上部署程序可执行文件的基相对子目录

QT_DEPLOY_LIB_DIR

在某些目标平台上部署库的基相对子目录

QT_DEPLOY_PLUGINS_DIR

在某些目标平台上部署Qt插件的基相对子目录

QT_DEPLOY_PREFIX

部署的基位置

QT_DEPLOY_QML_DIR

在某些目标平台上部署QML插件的基相对子目录

QT_DEPLOY_SUPPORT

用于设置部署支持的文件名

QT_DEPLOY_TRANSLATIONS_DIR

在某些目标平台上部署Qt翻译的基相对子目录

QT_ENABLE_VERBOSE_DEPLOYMENT

启用部署工具的详细模式

QT_HOST_PATH

交叉编译时的主机Qt安装位置

QT_I18N_SOURCE_LANGUAGE

指定可翻译字符串的语言

QT_I18N_TRANSLATED_LANGUAGES

用于项目国际化的语言列表

QT_IOS_LAUNCH_SCREEN

用于所有目标的所有iOS启动屏幕storyboard的路径

QT_NO_COLLECT_BUILD_TREE_APK_DEPS

防止在Android部署期间收集项目构建的共享库目标

QT_NO_COLLECT_IMPORTED_TARGET_APK_DEPS

防止在Android部署期间收集导入的目标

QT_NO_SET_XCODE_BUNDLE_IDENTIFIER

在iOS目标最终化期间禁用提供回退应用包ID

QT_NO_SET_XCODE_DEVELOPMENT_TEAM_ID

在iOS目标最终化期间禁用提供回退团队ID

QT_NO_STANDARD_PROJECT_SETUP

防止后续调用qt_standard_project_setup()造成任何更改

QT_PATH_ANDROID_ABI_<ABI>

用于指定针对相应ABI的Qt for Android路径的变量集合

Qt6::Qml

QT_QML_GENERATE_QMLLS_INI

为QML语言服务器启用自动生成.qmlls.ini文件

QT_QML_OUTPUT_DIRECTORY

基本输出目录,默认情况下将在此目录下创建 QML 模块

Qt6::InterfaceFramework

IFCODEGEN_VERBOSE

启用所有 ifcodegen 函数的详细记录功能

QT_IFCODEGEN_TEMPLATE_SEARCH_PATH

ifcodegen 模板的搜索路径

© 2024 Qt 公司。此处包含的文档贡献为其各自所有者的版权。在此提供的文档依据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款提供许可。Qt 和相应的商标是芬兰以及全球其他地区的 Qt 公司的商标。所有其他商标均为各自所有者的财产。