2010-08-22 4 views
0

Dans un projet Qt, je dois fournir un make dist personnalisé. J'ai donc ajouté les lignes suivantes au fichier *.pro:Comment remplacer la cible par défaut `make dist` de Qmake?

QMAKE_EXTRA_TARGETS += dist 
dist.commands = [...] 

Cela fonctionne, mais montre les avertissements suivants chaque fois que je lance make:

Makefile:209: warning: overriding commands for target `dist' 
Makefile:188: warning: ignoring old commands for target `dist' 

En dehors de cela, il fonctionne très bien et complètement écrasements Valeur par défaut de Qmake make dist. Mais les avertissements sont vraiment agaçants.

Je pourrais utiliser un nom cible différent, comme make dist-all, mais make dist est une établie commande standard. Est-il possible d'écraser make dist de Qmake sans recevoir d'avertissement?

Peut-être que je suis sur la mauvaise piste? Dois-je gérer ce problème différemment?

Répondre

0

l'avertissement est généré par faire non par qmake, parce que dist se défini deux fois - ce qui est interdit. Vous ne pouvez pas redéfinir la cible dist sans recompiler qmake, parce que la cible dist est compilé dans qmake/générateurs/unix/unixmake.cpp

pour résoudre le problème, vous pouvez modifier le makefile après est généré par qmake (à l'aide d'un script par exemple que Wrapps l'appel qmake et supprime la cible standard dist)

ou utilisez une autre cible nom comme « myDist »

+0

Juste un pinailler: la question indique déjà que les mises en garde viennent de faire, pas qmake. Néanmoins, c'est qmake qui génère la cible dist dupliquée en premier lieu. Il pourrait simplement supprimer l'écriture de sa propre cible dist si le fichier * .pro le redéfinit. Mais pour une raison étrange, il les écrit dans le Makefile. – vog

+0

La réécriture ultérieure du Makefile n'est pas fiable, car le Makefile se régénère lui-même (en appelant qmake) après chaque modification du fichier * .pro. – vog

+0

La raison pour laquelle la cible default-hadist est écrite dans le makefile n'est pas du tout étrange - elle est codée en dur dans la source qmake. –

Questions connexes