qt_finalize_target
处理与 Qt 目标相关的各种常见平台特定任务。
该命令在Qt6
软件包的Core
组件中定义,可以像这样加载:
find_package(Qt6 REQUIRED COMPONENTS Core)
该命令在 Qt 6.2 中引入。
简介
qt_finalize_target(target)
如果禁用了无版本命令,请使用qt6_finalize_target()
代替。它支持与此命令相同的参数集。
说明
创建目标后,有时需要进一步处理或最终确定步骤。执行的步骤取决于平台、目标类型和目标的各种属性。这些步骤应在创建target
的同一目录范围内执行,因此也应在同一目录范围内调用此命令。
该命令通常作为qt_add_executable()、qt_add_library() 或qt_add_plugin() 调用的一部分被调用。关于调用的时间以及项目何时需要明确调用该命令,将在这些命令的文档中讨论。
可执行目标
对于可执行目标,qt_finalize_target()
会根据所提供的平台和目标执行下面各小节中描述的逻辑。以后的 Qt 版本可能会进一步扩展最终处理过程。
所有平台
为了方便 Qt 插件的自动链接,会执行一些内部处理。如果使用静态构建的 Qt 或 CMake 版本早于 3.21,这一点尤为重要。
安卓
- 为
target
生成部署设置文件。 - 创建生成 APK 的构建目标。
WASM
在CMAKE_CURRENT_BINARY_DIR
中创建${target}.html
(特定于目标的wasm_shell.html
文件)、qtloader.js
和qtlogo.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_IDENTIFIER
和MACOSX_BUNDLE_GUI_IDENTIFIER
的设置。
库目标
在此 Qt 版本中,库目标的最终确定不执行任何处理。未来的 Qt 版本可能会为库添加最终处理,因此您应确保最终处理仍按预期方式调用。
另请参阅 qt_set_finalizer_mode()。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.