Auf dieser Seite

qt_generate_deploy_script

Ein benutzerdefiniertes Bereitstellungsskript generieren.

Der Befehl ist in der Komponente „ Core “ des Pakets „ Qt6 “ definiert, das wie folgt geladen werden kann:

find_package(Qt6 REQUIRED COMPONENTS Core)

Dieser Befehl wurde in Qt 6.5 eingeführt.

Übersicht

qt_generate_deploy_script(
    OUTPUT_SCRIPT <var>
    [TARGET target]
    [NAME script_name]
    [CONTENT content]
)

Wenn versionsunabhängige Befehle deaktiviert sind, verwenden Sie stattdessen „ qt6_generate_deploy_script() “. Dieser Befehl unterstützt dieselben Argumente wie der vorliegende Befehl.

Beschreibung

Der Befehl generiert ein Skript, dessen vollständiger Dateipfad in der durch die Option „ OUTPUT_SCRIPT “ benannten Variablen gespeichert wird. Dieses Skript wird nur zum Zeitpunkt der CMake-Generierung geschrieben. Es ist für die Verwendung mit dem Befehl „install(SCRIPT)“ vorgesehen, der ausgeführt werden sollte, nachdem das Ziel der Anwendung mit „install(TARGETS)“ installiert wurde.

Der Befehl sorgt für die Erstellung einer Datei, deren Name für Multi-Config-Generatoren geeignet ist. Die erforderlichen Include-Anweisungen werden hinzugefügt, sodass auf die CMake-Bereitstellungsfunktionen und -Variablen von Qt zugegriffen werden kann.

Das Argument „ TARGET “ gibt das Ziel an, das vom Skript bereitgestellt werden soll. Dies wirkt sich auf den Dateinamen des generierten Skripts aus, sofern nicht „ NAME “ angegeben wird.

Das Argument „ NAME “ steuert einen identifizierbaren Teil innerhalb des automatisch generierten Namens des Deployment-Skripts. Das Argument „ NAME “ ist standardmäßig auf „ custom “ gesetzt, sofern weder „ NAME “ noch „ TARGET “ angegeben sind.

Das Argument „ CONTENT “ legt den Code fest, der in das Bereitstellungsskript geschrieben wird. Der Inhalt kann Generatorausdrücke enthalten.

Hinweis: Bei Verwendung des versionslosen Befehls `qt_generate_deploy_script` gelangen Escape-Sequenzen und ` ${var} `-Referenzen im Inhalt nur dann unverändert in das generierte Skript, wenn QTP0008 auf ` NEW` gesetzt ist. Bei der Einstellung „ OLD “ werden sie an der Aufrufstelle ausgewertet, während die Argumente weitergeleitet werden. Daher wird eine „ QT_DEPLOY_* “-Referenz, die eigentlich erst bei der Ausführung des Skripts erweitert werden soll, stattdessen bereits bei der Konfiguration erweitert, was zu einem leeren Wert führt. Durch den direkten Aufruf von „ qt6_generate_deploy_script() “ lässt sich dieses Problem vermeiden.

Dieser Befehl ist für die Erstellung benutzerdefinierter Bereitstellungsskripte vorgesehen, die Funktionen der Qt-Bereitstellungs-API direkt aufrufen. Für weniger komplexe Bereitstellungszwecke ist es praktischer, `qt_generate_deploy_app_script() ` oder `qt_generate_deploy_qml_app_script()` zu verwenden.

Beispiel

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)

install(TARGETS MyApp
    BUNDLE  DESTINATION .
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

qt_generate_deploy_script(
    TARGET MyApp
    OUTPUT_SCRIPT deploy_script
    CONTENT "
qt_deploy_runtime_dependencies(
    EXECUTABLE $<TARGET_FILE:MyApp>
)
")
install(SCRIPT ${deploy_script})

Siehe auch qt_generate_deploy_app_script(), qt_generate_deploy_qml_app_script() und QTP0008.

© 2026 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.