qt_finalize_target

处理与 Qt 目标相关的各种常见平台特定任务。

该命令定义在 Qt6 包的 Core 组件中,可以像这样加载:

find_package(Qt6 REQUIRED COMPONENTS Core)

此命令自 Qt 6.2 开始引入。

摘要

qt_finalize_target(target)

如果禁用 无版本命令,则请使用 qt6_finalize_target() 代替。它支持与本命令相同的参数集。

描述

在创建目标之后,有时需要执行进一步的 最终化 步骤。这些步骤取决于平台、目标类型以及目标的各种属性。预期这些步骤将在此目录作用域内执行,因此此命令也应从同一目录作用域调用。

此命令通常在调用 qt_add_executable()qt_add_library()qt_add_plugin() 时调用。有关该调用何时发生以及何时可能需要显式调用的文档已有讨论。

可执行目标

对于可执行目标,qt_finalize_target() 实现将以下子节中描述的逻辑实现,适用于提供的平台和目标。Qt 的后续版本可能进一步扩展最终化处理。

所有平台

执行某些内部处理,以方便自动链接 Qt 插件。如果使用静态构建的 Qt 或 CMake 版本早于 3.21,这尤其重要。

Android

  • target 生成部署设置文件。
  • 为生成 APK 创建构建目标。

WASM

CMAKE_CURRENT_BINARY_DIR 中创建 ${target}.html(特定目标的 wasm_shell.html 文件)、qtloader.jsqtlogo.svg 文件。

iOS

如果尚未设置以下目标属性,并相应的 CMAKE_... 变量也未设置,则尝试为以下属性提供合理的值:

  • XCODE_ATTRIBUTE_DEVELOPMENT_TEAM
  • XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER
  • MACOSX_BUNDLE_GUI_IDENTIFIER

如有需要,可以使用QT_NO_SET_XCODE_DEVELOPMENT_TEAM_ID变量来禁用设置XCODE_ATTRIBUTE_DEVELOPMENT_TEAM,以及使用QT_NO_SET_XCODE_BUNDLE_IDENTIFIER变量来禁用设置XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIERMACOSX_BUNDLE_GUI_IDENTIFIER

库目标

截至此Qt版本,库目标的最终化不执行任何处理。未来的Qt版本可能会为库添加最终化处理,因此您应确保最终化仍然以预期方式进行。

另请参阅qt_set_finalizer_mode()

© 2024 Qt公司有限公司。本文档的贡献权属于各自的所有者。本提供的文档是根据自由软件基金会发布的GNU自由文档许可证版本1.3的条款授予许可证的。Qt及其相关标志是芬兰和/或世界其他国家的Qt公司有限公司的商标。所有其他商标均为其各自所有者的财产。