2009-09-03 15 views
6

¿Mantiene Qt algún tipo de información sobre versiones de su programa como lo hace .NET? Al igual que el número de compilación? ¿O proporciona una forma fácil de acceder a la revisión de SVN?Qt versión de software automática?

Respuesta

11

Pero si usted está utilizando qmake entonces se puede establecer opciones del compilador en el sistema de construcción basado en los resultados de los comandos de su elección, lo que podría ser útil para hacer lo que quiera.

Por ejemplo, si estuviera usando git, se podría hacer algo como esto en su .pro archivo:

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

que le daría un APP_REVISION macro al compilar su programa, que se puede utilizar de esta manera:

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

¡Neat! Tendré que jugar con esto. Estoy usando NetBeans como mi IDE y crea el archivo .pro en sí, así que tengo que encontrar la manera de que * no * sobrescriba mis cambios. – mpen

+0

Si hace 'DEFINES + = APP_REVISION = \\\" $$ REVISION \\\ "' en su archivo de proyecto, entonces no necesita contaminar sus archivos fuente con la macro 'STR'. –

+0

@Dan: esto es cierto, sin embargo, el problema es que el número de barras invertidas requeridas en su ejemplo es específico de la plataforma (incluso del shell específico, ya que mingw32-make.exe en windows puede ejecutar comandos a través de cmd o sh dependiendo del entorno) Creo que es bastante difícil hacerlo bien. – rohanpm

Cuestiones relacionadas