Артефакт Doxygen
Портативний бінарний дистрибутив Doxygen — генератора документації для C, C++ та інших мов. Цей репозиторій використовується Embedbits Platform Artifact Handler для пошуку, завантаження, перевірки та налаштування Doxygen у подальших embedded-проєктах.
Цей репозиторій поділено на три гілки/посилання за ролями: гілка main (master), яку ви зараз читаєте, містить лише цю документацію; скрипти handler містяться в гілці Core, а версіоновані бінарні файли публікуються як GitHub Releases, прив'язані до гілки Bin.
Вміст репозиторію
main / master
└── README.md ← This document — no other content
Core
├── ArtifactConfig.cmake ← Artifact metadata (name, version constraints, asset naming)
├── CMakeDoxygenDefaults.cmake ← Doxygen integration logic (path setup, input/ignore path config)
└── Doxyfile.in ← Doxygen configuration template
Bin (anchor branch — no tracked binary files)
└── (empty commits only; each release tag points here)
Роль у платформі
Цей репозиторій — один із кількох дистрибутивів артефактів у платформі Embedbits. Загальний потік такий:
GitHub (Embedbits)
──────────────────────────────────────────────────────────
Artifact-doxygen
main / master → README only (this document)
Core → ArtifactConfig.cmake, CMakeDoxygenDefaults.cmake, Doxyfile.in
Bin → Anchor branch (empty commits)
Releases → doxygen-<version>-<platform>.zip + .hash
tagged Bin/<version>-<platform> (platform: Win / Unix / DarwinARM)
Скрипти в стилі DoxygenImporter.sh публікують кожну версію Doxygen як GitHub Release з тегом Bin/<version>-<platform>, а не як файл, закомічений у гілку Bin. Сама гілка Bin містить лише порожні якірні коміти, на які вказують теги релізів.
Platform Artifact Handler у подальших проєктах посилається на гілку Core як на Git submodule. Під час конфігурації CMake він зчитує ArtifactConfig.cmake, щоб визначити, який реліз завантажувати, а потім завантажує та перевіряє відповідний ресурс релізу для поточної платформи.
Структура гілок
| Гілка / посилання | Вміст |
|---|---|
main / master | Лише цей README — жодного функціонального вмісту |
Core | Скрипти CMake handler (ArtifactConfig.cmake, CMakeDoxygenDefaults.cmake) та допоміжні скрипти для використання артефакту |
Bin | Лише якірна гілка — бінарні файли тут не комітяться |
Тег релізу Bin/<version>-<platform> | GitHub Release із власне бінарним .zip та файлом контрольної суми .hash як ресурсами релізу, для platform ∈ Win, Unix, DarwinARM |
Примітка: Сам протокол Embedbits Artifact Handler не прив'язаний до GitHub Releases — це лише те, як скрипти-імпортери, розміщені на GitHub, публікують бінарні файли. На Git-хостингу без еквівалентного Releases API handler також підтримує пакетовані бінарні файли, закомічені безпосередньо як відстежувані файли в гілці
Binі позначені тегами за версією/платформою (Bin/<version>-<platform>), а не завантажені як ресурси релізу. Handler для CMake прозоро розпізнає обидві форми.
⚠️ Отримання релізу
Бінарні файли не зберігаються як відстежувані файли в Bin — клонуйте гілку Core для скриптів handler, а бінарні файли завантажуйте як ресурси релізу для конкретного тега, а не клонуючи гілку Bin.
# Core handler scripts
git clone --branch Core --single-branch --depth=1 <repository_url> doxygen-core
# Binary + checksum for one specific version/platform (GitHub Release asset)
gh release download Bin/1.11.0-Unix --repo Embedbits/Artifact-doxygen --pattern "doxygen-1.11.0-Unix.*"
Складові
| Компонент | Опис |
|---|---|
doxygen | Основний виконуваний файл для генерації документації у форматах HTML, LaTeX і PDF |
doxyindexer, doxysearch.cgi | Необов'язкові інструменти для індексації пошуку |
Doxyfile.in | Типовий шаблон конфігурації Doxygen |
Використання
Артефакт встановлюється автоматично на етапі налаштування артефактів за допомогою:
cmake -P Artifacts/Doxygen/ArtifactConfig.cmake
Скрипт забезпечує наявність бінарного файлу Doxygen, за потреби розпаковує архів і додає інструмент до системного PATH для наступних кроків збірки.
Додавання шляхів до документації
Додайте поточну теку та її підтеки до вхідних даних Doxygen:
Doxygen_AddPath(${CMAKE_CURRENT_LIST_DIR})
Виключіть поточну теку та її підтеки з вхідних даних Doxygen:
Doxygen_AddIgnorePath(${CMAKE_CURRENT_LIST_DIR})
Теки згенерованого виводу
${PROJECT_ROOT}/docs/html
${PROJECT_ROOT}/docs/latex
Версіонування
Версії артефакту безпосередньо відповідають офіційним версіям релізів Doxygen:
1.9.7, 1.9.8, 1.10.0, 1.11.0, ...
Нові версії публікує скрипт-імпортер у стилі NinjaImporter.sh у репозиторії GithubArtifactsHandler, який завантажує офіційні бінарні файли, пакує їх в архіви .zip із перевіркою SHA-256 і публікує як GitHub Release з тегом Bin/<version>-<platform> — сама гілка Bin просувається лише через порожній якірний коміт, на який вказує тег.
Примітки
- Встановлення не потрібне — бінарні файли портативні та самодостатні.
- Офлайн-використання підтримується після локального кешування артефакту.
- У pipelines Azure DevOps для скорочення часу збірки рекомендовано кешувати теку артефакту.
Ліцензія
Doxygen розповсюджується за GNU General Public License (GPL). Докладніше: https://www.doxygen.nl/license.html
Автори
- Mr.Nobody — embedbits.com
Запрошуємо до співпраці! Будь ласка, відкрийте pull request.