2009-09-03 1 views
6

Qt gère-t-il des informations de version sur votre programme comme le fait .NET? Comme le numéro de build? Ou fournit-il un moyen facile d'accéder à la révision SVN?Qt version du logiciel automatique?

Répondre

11

n °

Mais si vous utilisez qmake vous pouvez définir des drapeaux du compilateur dans le système de construction sur la base des résultats des commandes arbitraires, ce qui pourrait être utilisable pour faire ce que vous voulez.

Par exemple, si vous utilisez git, vous pourriez faire quelque chose comme ceci dans votre fichier .pro:

REVISION = $$system(git rev-parse HEAD) 
DEFINES += APP_REVISION=$$REVISION 

qui vous donnera une APP_REVISION macro lors de la compilation de votre programme, vous pouvez utiliser comme ceci:

// stringize macro 
#define _STR(X) #X 
#define STR(X) _STR(X) 
QTextStream(cout) << "MyApp revision " STR(APP_REVISION) << endl; 
+0

Neat! Je vais devoir jouer avec ça. J'utilise NetBeans comme IDE et il construit le fichier .pro lui-même, donc je dois trouver comment l'obtenir * pas * écraser mes changements. – mpen

+0

Si vous faites DEFINIS + = APP_REVISION = \\\ "$$ REVISION \\\" 'dans votre fichier de projet, vous n'avez pas besoin de polluer vos fichiers sources avec la macro' STR'. –

+0

@Dan: cela est vrai, mais le problème est que le nombre de barres obliques inversées requises dans votre exemple est spécifique à la plate-forme (même shell spécifique, comme mingw32-make.exe sur windows peut exécuter des commandes via cmd ou via sh selon l'environnement). Je pense que c'est assez difficile de bien faire les choses. – rohanpm