2010-09-27 6 views
17

Pour mon projet Qt, j'utilise un fichier .pro qui inclut un fichier .pri distinct pour les différents fichiers d'en-tête, de source, de formulaire et de ressource. Cependant, chaque fois que j'ajoute un nouveau fichier, je dois l'ajouter manuellement au fichier .pri. C'est fastidieux et sujet aux erreurs. Est-il possible d'ajouter "magiquement" tous les fichiers d'un répertoire, directement dans le fichier .pri ou en demandant à qmake d'exécuter un script séparé au préalable?QMake: compiler automatiquement tous les fichiers dans un répertoire

+1

Belle question! Mais ... les erreurs potentielles dues à l'ajout de fichiers arbitraires (à partir d'un répertoire) peuvent être plus importantes que celles d'un nom de fichier mal saisi. Ajouter un nom de fichier au fichier .pri prend beaucoup moins de temps que d'ajouter un fichier source, donc cette fois-ci devrait être négligée. – mmonem

Répondre

9

L'exécution de qmake -project à partir du répertoire créera un fichier projet contenant tous les fichiers .cpp et .h de ce répertoire. Vous pouvez ajouter une étape de précompilation qui appelle qmake -project, puis passez le fichier généré à un script qui supprime les premières lignes. Voici une seule ligne rapide qui pourrait faire le travail:

qmake -project -o MyFiles.pro && sed '1,/^# Input/d' MyFiles.pro > MyFiles.pri && rm MyFiles.pro 
15

Vous pouvez utiliser:

SOURCES += *.cpp 
HEADERS += *.h 

dans votre fichier pro. Bien sûr, vous devez toujours vous rappeler de relancer qmake après avoir créé de nouveaux fichiers.

+8

Comment pouvez-vous ajouter récursivement tous les fichiers source dans un répertoire donné et tous les sous-répertoires? Cela ajoute seulement les fichiers dans le chemin racine. –

+0

Il ne semble pas non plus fonctionner pour n'importe quel chemin sauf $$ PWD, par ex. '../ my_blah/*. h' ne fonctionne pas, il dit" Ne pas trouver ... " – DBedrenko

Questions connexes