|
SDLPainter 1.2.0
SDL3 + OpenGL/Vulkan 2B çizim kütüphanesi
|
Bu doküman kütüphaneye katkıda bulunanlar için Doxygen yorum standardını, yerel build adımlarını ve GitLab Pages entegrasyonunu açıklar.
Doxygen iki kaynağı birleştirir: header yorumları (API referansı) ve doc/ markdown dosyaları (rehberler, diyagramlar). Sonuç tek bir HTML sitesidir.
Mermaid diyagramları Doxygen'in HTML çıktısında güncel Doxygen sürümlerinde (≈1.10+) native olarak render edilir: `mermaid blokları <pre class="mermaid"> içine sarılır ve sayfaya CDN üzerinden mermaid.js enjekte edilir. CI'daki docs job'u bu nedenle Ubuntu'nun apt deposundaki (donmuş, eski) paket yerine Doxygen'in resmi Linux binary'sini indirir. Eski/donmuş Doxygen sürümleriyle (apt'tan gelen gibi) diyagramlar düz kaynak kod bloku olarak görünür — bu durumda doc/*.md dosyaları yine de GitLab/GitHub markdown viewer'ında okunabilir kalır.
Klonlama sırasında submodule'ü de çekmek için:
GitLab CI'da GIT_SUBMODULE_STRATEGY: recursive zaten tanımlı; ek yapılandırma gerekmez.
Doxygen kurulu değilse CMake sdlpainter_docs hedefini tanımlamaz (projenin build'ini engellemez). Kurulum:
| Kapsam | Kural |
|---|---|
include/sdl_painter/*.h — tüm public üyeler | @brief zorunlu; parametreler ve dönüş değeri belgelenmeli |
include/sdl_painter/*.h — sınıf/struct tanımı | Sınıf düzeyi blok (/// @brief + genel davranış açıklaması) zorunlu |
src/tessellator.h, src/render_batcher.h (internal) | @brief yazılabilir; Doxygen çıktısına girmez (EXCLUDE_PATTERNS kapsar) |
private metodlar | Gerekmedikçe yorum yazma — iyi isimlendirilmiş kod yeterli |
Implementasyon (*.cpp) | Sadece neden kısmı için satır içi yorum; Doxygen çıktısına girmez |
Kural: "Bu yorumu silsem başka bir geliştirici kayıptan zarar görür mü?" Cevap hayırsa yorum yazma.
Tüm yorumlar /// üçlü slash ile yazılır. /** */ blok formatı kullanılmaz (Google Style tutarlılığı için).
| Etiket | Ne zaman |
|---|---|
@brief | Her public üyede zorunlu — tek satır özet |
@param name | Her parametre için; ismi ve beklenen değer aralığını yaz |
@return | Void dışı her fonksiyonda; hata durumu dahil |
@note | Beklenmedik davranış, önemli kısıtlama, sözleşme |
@warning | Yanlış kullanım crash / tanımsız davranış yaratıyorsa |
@code / @endcode | Kullanım örneği (birden fazla satırsa) |
@see | İlgili başka sınıf/metod (opsiyonel) |
@since | API'ye faz bazlı eklendiyse (örn. @since Phase 4) |
@todo ve @deprecated repo içinde kullanılmaz; bunlar ADR veya issue tracker'a aittir.
Satır sonu ///< formatı Doxygen'de enum değerlerine yorum ekler.
Belirsizlik yaratabilecek her parametrede birim veya aralık belirt:
Doxyfile.in içinde WARN_IF_UNDOCUMENTED = YES ayarlıdır. Bu, @brief eksik olan her public üye için Doxygen'in uyarı üretmesi anlamına gelir. CI pages job'u bu uyarıları stderr'e yazar; şimdilik build'i kırmaz (uyarı ≠ hata) ama gözden geçirilmeli.
İleride katı hale getirmek için Doxyfile.in'de:
pages CI job'u yalnızca default branch (main) üzerinde çalışır. Her merge sonrası dokümantasyon otomatik güncellenir.
Yayınlanan adres:
Proje henüz public değilse GitLab Pages ayarlarında **"Everyone"** erişimi verilmesi gerekebilir (Settings → General → Visibility → Pages).
İki belge türü birbirinin yerini tutmaz:
| Dosya | Rol |
|---|---|
cmake/Doxyfile.in | Doxygen şablonu (CMake değişkenleri ile konfigure edilir) |
cmake/Docs.cmake | sdlpainter_docs CMake hedefini tanımlar |
CMakeLists.txt | SDLPAINTER_BUILD_DOCS option |
.gitlab-ci.yml | pages job — main branch'te GitLab Pages'e yayınlar |
third_party/doxygen-awesome-css/ | Tema submodule'ü (git submodule add ile eklenir) |