Bazı C++ kod tabanım var, doxygen ile belgelenmiş ve GNU marka ile oluşturulmuştur. Versiyon bilgiler gibi bir şey var burada, makefile'ında merkezileştirilir: Benim makefile olarak 1.2.3.4Makro içeriğinin genişletilmesi Doxygen açıklaması için yazılım sürümü çıktı
=
VERSION, CFLAGS eklemek aşağıdakileri tanımlayın:
CFLAGSın + = -DAPP_VERSION = $ (VERSİYONU)
Bu, sürümdeki kodu şu şekilde almamı sağlar:.2.3.4
Ben dışa başardı
yazılımınınGüncel sürümü: Şimdi
, ne istiyoruz doxygen üretilen html dosyalarında bu sahip olmaktır aşağıdaki gibi doxygen yapılandırma dosyasına makefile değişkeni: ( düzenleme: doxygen, makefile'dan 'make-doc' hedefi ile çağrılır)#define STR_EXPAND(tok) #tok #define STR(tok) STR_EXPAND(tok) int main() { cout << "software version is << STR(APP_VERSION) << endl; }
ÖNTANIMLI = APP_VERSION = $ (VERSİYONU)
Ama sonra, böyle doxygen \ anasayfa komut şey denerseniz, bu başarısız (tabii ki), makro adları genişletilmiş alamadım çünkü yorumlarda ...
/** \mainpage this is the doc Current version is $(APP_VERSION) -- or -- ... is APP_VERSION */
Sorular
bir şekilde biliyor musunuz Bu makro, doxygen yorumlarında "genişliyor" mu? Bu, makefile'deki yorumu tutan dosyadaki bazı sed işleme ile yapılabilir, ancak belki bu doğrudan doxygen ile çözülebilir?
Diğer projeler, sürüm kimliğinin bir dosyada benzersiz şekilde tanımlandığı şekilde, sürüm oluşturma işlemini nasıl gerçekleştirir (VCS'nin sağladığı otomatik sürüm oluşturma aracının yanı sıra), böylece hem yazılım oluşturma sistemi hem de belge tarafından getirilebilir sistem kur. İlgili
Sadece bu soruya geri dönüp (biraz gecikmeyle birlikte) bunun farkına varıyorum. tam olarak aradığım şey! O zaman ben hiç fark etmedim. Cevabı kabul etmek. – kebs