qt_standard_project_setup
Configurer les paramètres par défaut à l'échelle du projet selon une organisation standard.
La commande est définie dans le composant « Core » du paquet « Qt6 », qui peut être chargé comme suit :
find_package(Qt6 REQUIRED COMPONENTS Core)Cette commande a été introduite dans Qt 6.3.
Syntaxe
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 plutôt qt6_standard_project_setup(). Elle prend en charge le même ensemble d'arguments que cette commande.
Description
Cette commande simplifie la configuration d’une application Qt classique. Elle est généralement appelée immédiatement après le premier appel à ` find_package(Qt6) `, habituellement dans le fichier ` CMakeLists.txt ` de niveau supérieur et avant la définition de toute cible. Si vous l’appelez plus tard, elle ne s’applique pas aux cibles définies auparavant, ce qui peut entraîner des résultats prêtant à confusion. Elle effectue les opérations suivantes :
- Les variables CMake standard
CMAKE_AUTOMOCetCMAKE_AUTOUICsont définies sur « true » si elles ne le sont pas déjà. Cela active par défaut toutes les fonctionnalités autogen liées à Qt pour les cibles créées par la suite dans le répertoire courant et ses sous-répertoires. - Le module GNUInstallDirs de CMake est automatiquement inclus. Cela définit des valeurs par défaut appropriées pour des variables telles que
CMAKE_INSTALL_BINDIR,CMAKE_INSTALL_LIBDIR, etc. - Lorsque la cible est Windows, si la variable
CMAKE_RUNTIME_OUTPUT_DIRECTORYn’est pas déjà définie, elle sera définie sur${CMAKE_CURRENT_BINARY_DIR}. - Pour les plateformes cibles autres qu’Apple ou Windows,
CMAKE_INSTALL_RPATHsera complétée comme décrit ci-dessous. - La propriété USE_FOLDERS de CMake est définie sur
ON, et QT_TARGETS_FOLDER est définie surQtInternalTargets. Les IDE prenant en charge les dossiers afficheront les cibles internes à Qt dans ce dossier.
Depuis Qt 6.5, il est possible de modifier le comportement par défaut de l’API CMake de Qt en activant les changements de comportement des versions plus récentes de Qt via les politiques CMake de Qt. Ce principe est similaire au concept de politique propre à CMake (cf. cmake_policy). Si REQUIRES est spécifié, toutes les politiques introduites dans les versions de Qt jusqu’à REQUIRES inclus sont automatiquement définies sur NEW, et l’utilisation d’une version plus ancienne de Qt 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 exiger la présence de cette version particulière de Qt.
Les politiques suivantes sont disponibles :
« :/qt/qml/ » est le préfixe de ressource par défaut pour les modules Qml | |
Les propriétés de cible qui spécifient des chemins d’accès 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 | |
Permettre aux mots-clés de dépendance de qt_add_qml_module() d’accepter des cibles CMake | |
Active PRIVATE_CODE comme valeur par défaut pour la génération du code source du protocole Wayland. | |
Place entre guillemets et utilise des caractères d'échappement pour les valeurs des arguments transmis dans les scripts de déploiement générés. | |
Transmet les arguments des scripts de déploiement sans les réévaluer. |
Voir qt_policy() pour plus de détails sur la configuration manuelle de politiques individuelles.
Sur les plateformes prenant en charge l’ RPATH (autres que les plateformes Apple), cette commande ajoute deux valeurs à la variable CMAKE_INSTALL_RPATH. La valeur $ORIGIN est ajoutée afin que les bibliothèques puissent trouver les autres bibliothèques dont elles dépendent dans le même répertoire qu’elles-mêmes. La valeur $ORIGIN/<reldir> est également ajoutée, où <reldir> correspond au chemin relatif entre CMAKE_INSTALL_BINDIR et CMAKE_INSTALL_LIBDIR. Cela permet aux exécutables installés dans CMAKE_INSTALL_BINDIR de trouver toutes les bibliothèques dont ils pourraient dépendre et qui sont installées dans CMAKE_INSTALL_LIBDIR. Les doublons présents dans ` CMAKE_INSTALL_RPATH ` sont supprimés. En pratique, ces deux valeurs garantissent que les exécutables et les bibliothèques trouveront leurs dépendances de liaison, à condition que les projets les installent aux emplacements par défaut utilisés par la commande `install(TARGETS)` lorsqu’aucune destination n’est explicitement fournie.
Pour désactiver la prise en charge des dossiers pour les IDE, définissez USE_FOLDERS sur OFF avant ou après l’appel à qt_standard_project_setup.
La commande ` qt_standard_project_setup() ` peut être effectivement désactivée en définissant la variable ` QT_NO_STANDARD_PROJECT_SETUP ` sur `true`.
Internationalisation
Depuis Qt 6.7, il est possible de spécifier les langues utilisées pour l’internationalisation du projet à l’aide de 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ée. 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 également 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.