2009-09-03 14 views
6

Qt conserva qualche tipo di informazioni sulla versione del tuo programma come .NET? Ti piace il numero di build? O fornisce un modo semplice per accedere alla revisione SVN?Versione software automatica Qt?

risposta

11

No.

Ma se si sta utilizzando qmake quindi è possibile impostare opzioni del compilatore nel sistema di compilazione in base ai risultati di comandi arbitrari, che potrebbe essere utile a fare quello che vuoi.

Ad esempio, se si sta utilizzando git, si potrebbe fare qualcosa di simile nel tuo .pro del file:

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

, che vi darà un APP_REVISION macro durante la compilazione del programma, che è possibile utilizzare in questo modo:

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

Neat! Dovrò giocare con questo. Sto usando NetBeans come IDE e costruisce il file .pro stesso, quindi devo capire come farlo * non * sovrascrivere le mie modifiche. – mpen

+0

Se si esegue il comando 'DEFINES + = APP_REVISION = \\\" $$ REVISION \\\ "' nel file di progetto, non è necessario inquinare i file di origine con la macro 'STR'. –

+0

@Dan: questo è vero, tuttavia il problema è che il numero di backslash richiesti nell'esempio è specifico della piattaforma (anche specifico della shell, dato che mingw32-make.exe su Windows può eseguire comandi via cmd o via sh a seconda dell'ambiente). Penso che sia abbastanza difficile farlo bene. – rohanpm

Problemi correlati