Note: c’est un brouillon 🙂
Ma grande question du moment, comment architecture un projet Qt pour :
- avoir une bonne structure de dossier,
- pouvoir gérer plusieurs modules, et choisir ceux à utiliser lors de la compilation,
- séparer le code source du code des tests unitaires,
- choisir lors de la compilation de lancer les tests ou non.
Structure
src
module1/
src/
test/
module1.pro
module2/
src/
test/
module2.pro
communication
data
service
util
ui/
project.cpp
project.h
project.ui
ui.pro
main.cpp
src.pro
test/
testcase/
MyGreatTest.cpp
MyGreatTest.h
test.pro
IUnitTestCase.h
TestRunner.cpp
TestRunner.h
vendor/
...
vendor.pri
.pro
En général, j’ai plusieurs projets liés entre eux qui partagent des fichiers. Si on passe donc un cran en dessous, j’ai quelque chose du style :
project1/ project2/ vendor/ ... vendor.pri release/
Quelques informations sur les les .pro et les .pri
Ah, et il est normal qu’un message s’affiche 3 fois dans les logs (lorsqu’on utilise les commandes « message » ou « system »), puisqu’il y a 3 Makefile à générer, donc le fichier .pro est consulté 3 fois.
Inspiration
- Creating a new module or tool for Qt. Si une structure est bonne, modulable et compréhensible pour un module Qt, à plus forte raison pour un projet classique.
- Thread [File Organization] Creating an organized project with Qt Creator
- Pour tout savoir sur Qmake : Qmake Variable Reference, Undocumented Qmake. Particulièrement le paragraphe sur SUBDIRS
- Structure for large scale c++ projects with plugins, dlls and 3rd Party tools (en). Une autre structure de dossiers.
- How to use QMake’s subdirs template? (en). Autre organisation
- Qmake project dependencies (linked libraries) (en). Une autre organisation.

