Afin de garder mon projet Qt quelque peu organisé (en utilisant Qt Creator), j'ai un fichier .pro et plusieurs fichiers .pri. Récemment, j'ai ajouté une classe à un de mes fichiers .pri qui a le même nom de fichier qu'une classe qui existait déjà dans un fichier .pri séparé.
La structure des fichiers et les fichiers makefiles générés par qmake semblent ne pas tenir compte de la collision de noms de fichiers qui s'ensuit. Les fichiers moc_* générés sont tous placés dans le même sous-répertoire (soit release, soit debug, selon) et l'un finit par écraser l'autre. Lorsque j'essaie de créer le projet, j'obtiens plusieurs avertissements qui ressemblent à ceci :
Makefile.Release:318: warning: overriding commands for target `release/moc_file.cpp`
Et le projet n'arrive pas à se connecter.
Voici un exemple simple de ce dont je parle.
Structure du répertoire :
\+ project\_dir
| + subdir1
| | - file.h
| | - file.cpp
| + subdir2
| | - file.h
| | - file.cpp
| - main.cpp
| - project.pro
| - subdir1.pri
| - subdir2.pri
Contenu de project.pro :
TARGET = project
TEMPLATE = app
include(subdir1.pri)
include(subdir2.pri)
SOURCES += main.cpp
Contenu de subdir1.pri :
HEADERS += subdir1/file.h
SOURCES += subdir1/file.cpp
Contenu de subdir2.pri :
HEADERS += subdir2/file.h
SOURCES += subdir2/file.cpp
Y a-t-il un moyen de dire à qmake de générer un système qui place les fichiers moc_* de fichiers .pri séparés dans des sous-répertoires séparés ?