qt_standard_project_setup
Setzt projektweite Standardeinstellungen auf eine Standardanordnung.
Der Befehl ist in der Core
Komponente des Qt6
Pakets definiert, das so geladen werden kann:
find_package(Qt6 REQUIRED COMPONENTS Core)
Dieses Kommando wurde in Qt 6.3 eingeführt.
Synopse
qt_standard_project_setup( [REQUIRES <version>] [SUPPORTS_UP_TO <version>] [I18N_TRANSLATED_LANGUAGES <language...>] [I18N_SOURCE_LANGUAGE <language>] )
Wenn versionslose Befehle deaktiviert sind, verwenden Sie stattdessen qt6_standard_project_setup()
. Es unterstützt den gleichen Satz von Argumenten wie dieser Befehl.
Beschreibung
Dieser Befehl vereinfacht die Aufgabe, eine typische Qt-Anwendung einzurichten. Er wird normalerweise unmittelbar nach dem ersten find_package(Qt6)
-Aufruf aufgerufen, normalerweise in der obersten Datei CMakeLists.txt
und bevor irgendwelche Ziele definiert wurden. Es macht die folgenden Dinge:
- Die CMake-Standardvariablen
CMAKE_AUTOMOC
undCMAKE_AUTOUIC
werden auf true gesetzt, wenn sie nicht bereits definiert sind. Dies aktiviert standardmäßig alle Qt-bezogenen Autogen-Funktionen für nachfolgend erstellte Targets im aktuellen Verzeichnisbereich und darunter. - Das GNUInstallDirs-Modul von CMake wird automatisch eingebunden. Es definiert geeignete Voreinstellungen für Variablen wie
CMAKE_INSTALL_BINDIR
,CMAKE_INSTALL_LIBDIR
, und so weiter. - Für Windows wird die Variable
CMAKE_RUNTIME_OUTPUT_DIRECTORY
auf${CMAKE_CURRENT_BINARY_DIR}
gesetzt, wenn sie nicht bereits gesetzt ist. - Wenn Sie andere Plattformen als Apple oder Windows anvisieren, wird
CMAKE_INSTALL_RPATH
wie unten beschrieben erweitert. - CMake's USE_FOLDERS Eigenschaft ist auf
ON
gesetzt, und QT_TARGETS_FOLDER ist aufQtInternalTargets
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 sich für die Änderungen aus neueren Qt-Versionen entscheidet. Wenn REQUIRES
angegeben wird, werden alle vorgeschlagenen Änderungen, die in Qt bis REQUIRES
eingeführt wurden, aktiviert, und die Verwendung einer älteren Qt-Version führt zu einem Fehler. Wenn zusätzlich SUPPORTS_UP_TO
angegeben wurde, werden alle neuen Änderungen, die in Versionen bis SUPPORTS_UP_TO
eingeführt wurden, ebenfalls aktiviert (aber die Verwendung einer älteren Qt-Version ist kein Fehler). Dies ist ähnlich wie das Policy-Konzept von CMake (vgl. cmake_policy).
Auf Plattformen, die RPATH
unterstützen (außer Apple-Plattformen), werden mit diesem 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 gleichen Verzeichnis wie sie selbst finden. $ORIGIN/<reldir>
wird ebenfalls angehängt, wobei <reldir>
der relative Pfad von CMAKE_INSTALL_BINDIR
zu CMAKE_INSTALL_LIBDIR
ist. Dies ermöglicht es ausführbaren Programmen, die auf CMAKE_INSTALL_BINDIR
installiert sind, alle Bibliotheken zu finden, von denen sie abhängen, die auf CMAKE_INSTALL_LIBDIR
installiert sind. Alle Duplikate in CMAKE_INSTALL_RPATH
werden entfernt. In der Praxis stellen diese beiden Werte sicher, dass ausführbare Programme und Bibliotheken ihre Link-Abhängigkeiten finden, vorausgesetzt, dass Projekte sie an den Standard-Speicherorten installieren, die der install(TARGETS)-B efehl 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 qt_standard_project_setup()
Befehl 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. Siehe QT_I18N_TRANSLATED_LANGUAGES für Details.
Verwenden Sie I18N_SOURCE_LANGUAGE, um die Sprache anzugeben, in der die übersetzbaren Strings geschrieben werden. Standardmäßig wird en
verwendet. Siehe QT_I18N_SOURCE_LANGUAGE für weitere Details.
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().
© 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.