qt_standard_project_setup
Projektweite Standardeinstellungen auf eine Standardkonfiguration festlegen.
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.3 eingeführt.
Übersicht
qt_standard_project_setup(
[REQUIRES <version>]
[SUPPORTS_UP_TO <version>]
[I18N_TRANSLATED_LANGUAGES <language...>]
[I18N_SOURCE_LANGUAGE <language>]
)Wenn versionsunabhängige Befehle deaktiviert sind, verwenden Sie stattdessen „ qt6_standard_project_setup() “. Dieser Befehl unterstützt dieselben Argumente wie der vorliegende Befehl.
Beschreibung
Dieser Befehl vereinfacht die Einrichtung einer typischen Qt-Anwendung. Er wird in der Regel unmittelbar nach dem ersten Aufruf von ` find_package(Qt6) ` aufgerufen, normalerweise in der obersten ` CMakeLists.txt `-Datei und bevor irgendwelche Ziele definiert wurden. Wenn Sie ihn später aufrufen, wirkt er sich nicht auf zuvor definierte Ziele aus, was zu möglicherweise verwirrenden Ergebnissen führen kann. Er führt folgende Schritte aus:
- Die Standard-CMake-Variablen `
CMAKE_AUTOMOC` und `CMAKE_AUTOUIC` werden auf `true` gesetzt, sofern sie nicht bereits definiert sind. Dadurch werden standardmäßig alle Qt-bezogenen Autogen-Funktionen für nachfolgend erstellte Ziele im aktuellen Verzeichnisbereich und darunter aktiviert. - Das CMake-Modul „GNUInstallDirs“ wird automatisch eingebunden. Dadurch werden geeignete Standardwerte für Variablen wie „
CMAKE_INSTALL_BINDIR“, „CMAKE_INSTALL_LIBDIR“ usw. definiert. - Bei der Zielplattform Windows wird die Variable „
CMAKE_RUNTIME_OUTPUT_DIRECTORY“, sofern sie noch nicht gesetzt ist, auf „${CMAKE_CURRENT_BINARY_DIR}“ gesetzt. - Bei anderen Zielplattformen als Apple oder Windows wird „
CMAKE_INSTALL_RPATH“ wie unten beschrieben erweitert. - Die CMake-Eigenschaft „USE_FOLDERS“ wird auf „
ON“ gesetzt, und „QT_TARGETS_FOLDER“ wird auf „QtInternalTargets“ gesetzt. IDEs, die Ordner unterstützen, zeigen Qt-interne Ziele in diesem Ordner an.
Seit Qt 6.5 ist es möglich, das Standardverhalten der CMake-API von Qt zu ändern, indem man über Qt-CMake-Richtlinien die Verhaltensänderungen aus neueren Qt-Versionen aktiviert. Dies ähnelt dem CMake-eigenen Richtlinienkonzept (vgl. cmake_policy). Wenn „ REQUIRES “ angegeben wird, werden alle in Qt-Versionen bis einschließlich REQUIRES eingeführten Richtlinien automatisch auf „ NEW “ gesetzt, und die Verwendung einer älteren Qt-Version führt zu einem Fehler. Wenn beispielsweise „ REQUIRES 6.8 “ angegeben wird, werden die Richtlinien QTP0001 bis QTP0005 aktiviert. Wird zusätzlich „ SUPPORTS_UP_TO “ angegeben, werden auch die Richtlinien bis zu dieser Version aktiviert, ohne dass die Anwesenheit dieser bestimmten Qt-Version erforderlich ist.
Die folgenden Richtlinien stehen zur Verfügung:
„':/qt/qml/'“ ist das Standard-Ressourcenpräfix für QML-Module | |
Ziel-Eigenschaften, die Android-spezifische Pfade angeben, dürfen Generatorausdrücke enthalten. | |
Berücksichtigen Sie den Wert von `BUILD_SHARED_LIBS` beim Erstellen von Qt-Bibliotheken. | |
Zusätzliche Verzeichnisse mit QML-Dateien in einem QML-Modul erfordern zusätzliche „qmldir“-Dateien | |
Die Abhängigkeitsschlüsselwörter von `qt_add_qml_module()` sollten CMake-Ziele akzeptieren | |
Aktiviert PRIVATE_CODE als Standard für die Generierung von Wayland-Protokollquellen. | |
Setzt Anführungszeichen und Escape-Zeichen für weitergeleitete Argumentwerte in generierten Deploy-Skripten. | |
Leitet Argumente von Deployment-Skripten weiter, ohne sie neu auszuwerten. |
Siehe qt_policy() für Details zur manuellen Festlegung einzelner Richtlinien.
Auf Plattformen, die „ RPATH “ unterstützen (mit Ausnahme von Apple-Plattformen), werden durch diesen Befehl zwei Werte an die Variable „ CMAKE_INSTALL_RPATH “ angehängt. „ $ORIGIN “ wird angehängt, damit Bibliotheken andere Bibliotheken, von denen sie abhängen, im selben Verzeichnis wie sie selbst finden können. „ $ORIGIN/<reldir> “ wird ebenfalls angehängt, wobei „ <reldir> “ der relative Pfad von „ CMAKE_INSTALL_BINDIR “ zu „ CMAKE_INSTALL_LIBDIR “ ist. Dadurch können ausführbare Dateien, die unter „ CMAKE_INSTALL_BINDIR “ installiert sind, alle Bibliotheken finden, von denen sie möglicherweise abhängen und die unter „ CMAKE_INSTALL_LIBDIR “ installiert sind. Etwaige Duplikate in „ CMAKE_INSTALL_RPATH “ werden entfernt. In der Praxis stellen diese beiden Werte sicher, dass ausführbare Dateien und Bibliotheken ihre Abhängigkeiten zur Linkzeit finden, vorausgesetzt, die Projekte installieren sie an den Standardorten, die der Befehl „install(TARGETS)“ verwendet, wenn kein Ziel explizit angegeben wird.
Um die Ordnerunterstützung für IDEs zu deaktivieren, setzen Sie USE_FOLDERS auf „ OFF “ vor oder nach dem Aufruf von „ qt_standard_project_setup “.
Der Befehl „ qt_standard_project_setup() “ kann effektiv deaktiviert werden, indem die Variable „QT_NO_STANDARD_PROJECT_SETUP“ auf „true“ gesetzt wird.
Internationalisierung
Seit Qt 6.7 ist es möglich, die Sprachen, die für die Internationalisierung des Projekts verwendet werden, mit dem Argument „ I18N_TRANSLATED_LANGUAGES “ anzugeben. Weitere Informationen finden Sie unter „QT_I18N_TRANSLATED_LANGUAGES “.
Verwenden Sie „I18N_SOURCE_LANGUAGE“, um die Sprache anzugeben, in der übersetzbare Zeichenfolgen geschrieben sind. Standardmäßig wird „ en “ verwendet. Weitere Informationen finden Sie unter „QT_I18N_SOURCE_LANGUAGE “.
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_app_script(
TARGET MyApp
OUTPUT_SCRIPT deploy_script
NO_UNSUPPORTED_PLATFORM_ERROR
)
install(SCRIPT ${deploy_script})Siehe auch `qt_generate_deploy_app_script()`, `qt_policy()` und `qt_add_translations()`.
© 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.