Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.
Including .pro Files/fr
Anglais Malay Espagnol Allemand Français
Inclure des fichiers .pro dans d’autres
Les fichiers de projet QMake ont parfois besoin d’être capable d’en inclure d’autres. Qmake est un très bon outil, mais il faut connaître quelques astuces pour en tirer le meilleur parti.
Tout d’abord, par convention, les fichiers .pro que l’on prévoit d’inclure dans d’autres doivent être nommés .pri, simplement pour rappeler qu’ils sont destinés à être inclus. Cela aide également à ce que qmake ne les utilise pas directement, mais utilise les fichiers .pro appropriés en lieu et place.
Dans un fichier .pro, on trouve essentiellement deux variables: INCLUDEPATH (chemin d’inclusion) et DEPENDPATH (arborescence de dépendance). Le premier est utilisé par le compilateur C++ quand il essaie de résoudre les inclusions (#include), tandis que le second est utilisé par qmake pour déterminer dans quel ordre il doit construire.
Pour avoir une arborescence de fichiers que l’on peut réellement déplacer, les fichiers .pri doivent mettre à jour ces variables de façon adaptée. Mon astuce pour le faire consiste à se baser sur le répertoire courant. On peut le trouver en lançant la commande $$system(pwd) (uniquement sur les linux / *nix, désolé ;-) )
Dans la documentation sur les variables de qmake [doc.qt.nokia.com] , on trouve des variables qui peuvent vous aider à identifier le répertoire courant (testé sur windows). Parmi elles, on peut citer:
- PWD [doc.qt.nokia.com]
- Cette variable contient le chemin complet vers l’endroît où le fichier de qmake (project.pro) se situe.
- OUT_PWD [doc.qt.nokia.com]
- Cette variable contient le chemin complet vers l’endroît où qmake va générer le fichier Makefile.
- L’utilisation du préfixe $$ est expliqué en détail ici [doc.qt.nokia.com] .
Une fois que les chemins d’inclusion et de dépendance sont correctement configurés, il suffit d’ajouter les bons fichiers dans les variables SOURCES, HEADERS, RESOURCES et FORMS.
Pour résumer, rien ne vaut un exemple:
Et simplement, dans le fichier .pro, on ajouter le fichier.pri en appelant include
Dangers
Cette façon de faire semble un peut trop alambiquée pour les outils de traduction. Si vous voulez pouvoir utiliser lupdate et lrelease, vous devez vous baser sur des fichiers .pri et .pro moins dynamiques ou simplement trouver un moyen de générer des fichiers .pro spécifiques dédiés aux traductions.