qt_standard_project_setup
Configure les valeurs par défaut de l'ensemble du projet en fonction d'un arrangement standard.
La commande est définie dans le composant Core du paquetage Qt6, qui peut être chargé comme suit :
find_package(Qt6 REQUIRED COMPONENTS Core)
Cette commande a été introduite dans Qt 6.3.
Synopsis
qt_standard_project_setup(
[REQUIRES <version>]
[SUPPORTS_UP_TO <version>]
[I18N_TRANSLATED_LANGUAGES <language...>]
[I18N_SOURCE_LANGUAGE <language>]
)Si les commandes sans version sont désactivées, utilisez qt6_standard_project_setup() à la place. Elle prend en charge le même ensemble d'arguments que cette commande.
Description de la commande
Cette commande simplifie la mise en place d'une application Qt typique. Elle est généralement appelée immédiatement après le premier appel à find_package(Qt6), normalement dans le fichier de premier niveau CMakeLists.txt et avant que toute cible n'ait été définie. Si vous l'appelez plus tard, elle ne s'applique pas aux cibles définies auparavant, ce qui peut entraîner une certaine confusion. Il fait les choses suivantes :
- Les variables CMake standard
CMAKE_AUTOMOCetCMAKE_AUTOUICsont mises à vrai si elles ne sont pas déjà définies. Cela active par défaut toutes les fonctionnalités autogènes liées à Qt pour les cibles créées ultérieurement dans le répertoire actuel (scope) et en dessous. - Le module GNUInstallDirs de CMake est automatiquement inclus. Il définit les valeurs par défaut appropriées pour les variables telles que
CMAKE_INSTALL_BINDIR,CMAKE_INSTALL_LIBDIR, et ainsi de suite. - Pour Windows, si la variable
CMAKE_RUNTIME_OUTPUT_DIRECTORYn'est pas déjà définie, elle sera définie à${CMAKE_CURRENT_BINARY_DIR}. - Pour les plates-formes autres qu'Apple ou Windows,
CMAKE_INSTALL_RPATHsera complété comme décrit ci-dessous. - La propriété USE_FOLDERS de CMake est fixée à
ON, et QT_TARGETS_FOLDER est fixé àQtInternalTargets. Les IDE qui supportent les dossiers afficheront les cibles internes à Qt dans ce dossier.
Depuis Qt 6.5, il est possible de changer le comportement par défaut de l'API CMake de Qt en optant pour les changements de comportement des versions plus récentes de Qt via les politiques CMake de Qt. Ceci est similaire au concept de politique de CMake (comparez cmake_policy). Si REQUIRES est spécifié, toutes les politiques introduites dans les versions de Qt jusqu'à REQUIRES inclus sont automatiquement définies à NEW, et l'utilisation d'une version de Qt plus ancienne entraînera une erreur. Par exemple, la spécification de REQUIRES 6.8 active les politiques QTP0001 à QTP0005. Si SUPPORTS_UP_TO est également spécifié, les politiques jusqu'à cette version sont également activées, mais sans nécessiter la présence de cette version particulière de Qtt.
Les politiques suivantes sont disponibles :
':/qt/qml/' est le préfixe de ressource par défaut pour les modules Qtml. | |
Les propriétés de cible qui spécifient des chemins spécifiques à Android peuvent contenir des expressions de générateur. | |
Tenez compte de la valeur BUILD_SHARED_LIBS lors de la création de bibliothèques Qt. | |
Les répertoires supplémentaires contenant des fichiers QML dans un module QML nécessitent des fichiers qmldir supplémentaires | |
Les mots-clés de dépendance Qt_add_qml_module acceptent les cibles CMake. |
Voir qt_policy pour plus de détails sur la définition manuelle des politiques individuelles.
Sur les plateformes qui supportent RPATH (autres que les plateformes Apple), deux valeurs sont ajoutées à la variable CMAKE_INSTALL_RPATH par cette commande. $ORIGIN est ajouté afin que les bibliothèques trouvent d'autres bibliothèques dont elles dépendent dans le même répertoire qu'elles. $ORIGIN/<reldir> est également ajouté, où <reldir> est le chemin relatif de CMAKE_INSTALL_BINDIR à CMAKE_INSTALL_LIBDIR. Cela permet aux exécutables installés à CMAKE_INSTALL_BINDIR de trouver toutes les bibliothèques dont ils peuvent dépendre installées à CMAKE_INSTALL_LIBDIR. Tout doublon dans CMAKE_INSTALL_RPATH est supprimé. En pratique, ces deux valeurs garantissent que les exécutables et les bibliothèques trouveront leurs dépendances au moment de l'édition des liens, en supposant que les projets les installent aux emplacements par défaut que la commande install(TARGETS) utilise lorsqu'aucune destination n'est explicitement fournie.
Pour désactiver la prise en charge des dossiers pour les IDE, définissez USE_FOLDERS à OFF avant ou après l'appel à qt_standard_project_setup.
La commande qt_standard_project_setup() peut être désactivée en mettant la variable QT_NO_STANDARD_PROJECT_SETUP à true.
Internationalisation
Depuis Qt 6.7, il est possible de spécifier les langues qui sont utilisées pour l'internationalisation du projet avec l'argument I18N_TRANSLATED_LANGUAGES. Voir QT_I18N_TRANSLATED_LANGUAGES pour plus de détails.
Utilisez I18N_SOURCE_LANGUAGE pour spécifier la langue dans laquelle les chaînes traduisibles sont écrites. Par défaut, en est utilisé. Voir QT_I18N_SOURCE_LANGUAGE pour plus de détails.
Exemple
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})Voir aussi qt_generate_deploy_app_script(), qt_policy, et 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.