2009-09-03 15 views
6

Qt, .NET'in yaptığı gibi programınızla ilgili her türlü sürüm bilgilerini korur mu? Yapı numarası gibi mi? Veya SVN revizyonuna erişmek için kolay bir yol sağlar mı?Qt otomatik yazılım sürümü?

cevap

11

sayılı

Ama sonra istediğiniz şeyi yapmak için kullanılabilir olabilir keyfi komutların sonuçlarına dayalı inşa sisteminde derleyici bayrakları ayarlayabilirsiniz qmake kullanıyorsanız. Eğer budala kullanıyormuş

Örneğin, size .pro dosyada böyle bir şey yapabileceğini:

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

size verecek Bu bir APP_REVISION makro böyle kullanabilirsiniz programınızı, derlerken:

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

Temiz! Bununla oynamak zorunda kalacağım. NetBeans'i IDE'm olarak kullanıyorum ve .pro dosyasının kendisini oluşturduğundan, nasıl değiştirileceğimi * öğrenmek zorundayım * değişikliklerin üzerine yazmam gerekiyor. – mpen

+0

Eğer proje dosyasında 'DEFINES + = APP_REVISION = \\\" $$ REVISION \\\ "' yaparsanız, kaynak dosyalarınızı 'STR' makrosuyla kirletmeniz gerekmez. –

+0

@Dan: Bu doğrudur, ancak sorun, örneğinizde gerekli ters eğik çizgi sayısının platforma özel olması (hatta kabuk mafsalı, mingw32-make.exe pencerelerinde cmd ya da çevreye bağlı olarak sh komutları çalıştırabilir)). Bence bunu doğru anlamak oldukça zor. – rohanpm