QT_DEPLOY_BIN_DIR

用于在某些目标平台上部署运行时二进制的相对子目录。

此变量由名为 QT_DEPLOY_SUPPORT 的脚本定义。它应仅作为安装或构建后规则部署的一部分使用。

注意:这是一个低级部署API变量,并且应仅在高级用例中(这些用例未由高层API命令覆盖)使用,例如 qt_generate_deploy_app_script

此变量在Qt 6.3中引入。

项目应在它们的部署脚本中使用 QT_DEPLOY_BIN_DIR 以避免硬编码以下类型的二进制文件的特定目录

  • 所有平台的可执行文件。
  • Windows上的DLL。

QT_DEPLOY_BIN_DIR 默认为 ${CMAKE_INSTALL_BINDIR} 的值(通常是 bin),这是由CMake的 GNUInstallDirs 模块提供的。要更改 QT_DEPLOY_BIN_DIR 的值,请确保项目在找到 Core 包之前设置了 CMAKE_INSTALL_BINDIR

QT_DEPLOY_BIN_DIR 路径相对于 QT_DEPLOY_PREFIX

当部署到macOS应用程序包时,此变量没有意义,不应在该场景中使用。

示例

cmake_minimum_required(VERSION 3.16...3.22)
project(MyThings)

find_package(Qt6 REQUIRED COMPONENTS Core)
qt_standard_project_setup()

qt_add_executable(MyApp main.cpp)

set_target_properties(MyApp PROPERTIES
    WIN32_EXECUTABLE TRUE
    MACOSX_BUNDLE TRUE
)

# App bundles on macOS have an .app suffix
if(APPLE)
    set(executable_path "$<TARGET_FILE_NAME:MyApp>.app")
else()
    set(executable_path "\${QT_DEPLOY_BIN_DIR}/$<TARGET_FILE_NAME:MyApp>")
endif()

# Helper app, not necessarily built as part of this project.
qt_add_executable(HelperApp helper.cpp)
set(helper_app_path "\${QT_DEPLOY_BIN_DIR}/$<TARGET_FILE_NAME:HelperApp>")

# Generate a deployment script to be executed at install time
qt_generate_deploy_script(
    TARGET MyApp
    OUTPUT_SCRIPT deploy_script
    CONTENT "
qt_deploy_runtime_dependencies(
    EXECUTABLE \"${executable_path}\"
    ADDITIONAL_EXECUTABLES \"${helper_app_path}\"
    GENERATE_QT_CONF
    VERBOSE
)")

# Omitting RUNTIME DESTINATION will install a non-bundle target to CMAKE_INSTALL_BINDIR,
# which coincides with the default value of QT_DEPLOY_BIN_DIR used above, './bin'.
# Installing macOS bundles always requires an explicit BUNDLE DESTINATION option.
install(TARGETS MyApp HelperApp    # Install to CMAKE_INSTALL_PREFIX/bin/MyApp.exe
                                   #                           and ./binHelperApp.exe
        BUNDLE  DESTINATION .      # Install to CMAKE_INSTALL_PREFIX/MyApp.app/Contents/MacOS/MyApp
)
install(SCRIPT ${deploy_script})    # Add its runtime dependencies

另请参阅:QT_DEPLOY_SUPPORTQT_DEPLOY_PREFIXQT_DEPLOY_LIBEXEC_DIRQT_DEPLOY_LIB_DIRQT_DEPLOY_PLUGINS_DIRQT_DEPLOY_QML_DIRQT_DEPLOY_TRANSLATIONS_DIR

© 2024 Qt公司有限。包含在此处的文档贡献是各自所有者的版权。此处的文档是根据自由软件基金会发布的 GNU自由文档许可证版本1.3 许可的。Qt及其相关标志是芬兰的Qt公司在世界各地的商标。所有其他商标均为各自所有者的财产。