From 8e3f80d82c9a3d9bc9768f9733ed1a8fceb2fa35 Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Wed, 20 Oct 2021 10:11:49 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CMake управление проектом.adoc | 81 +++++++++++++++---- wiki/Prog/Git/Git основные команды.adoc | 50 ++++++++++-- 2 files changed, 107 insertions(+), 24 deletions(-) diff --git a/wiki/Prog/Development/CMake управление проектом.adoc b/wiki/Prog/Development/CMake управление проектом.adoc index 7f55e85..8e9f04d 100644 --- a/wiki/Prog/Development/CMake управление проектом.adoc +++ b/wiki/Prog/Development/CMake управление проектом.adoc @@ -30,7 +30,6 @@ include::{l10ndir}/{lang}.adoc[] ├── .git ├── cmake │ ├── cmlib - │ ├── doc │ ├── etc │ │ └── uncrustify │ ├── find @@ -68,7 +67,6 @@ include::{l10ndir}/{lang}.adoc[] |`.git` | Системные файлы репозитория Git |`cmake` | Файлы с дополнительными функциями для CMake |`cmake/cmlib` | Библиотека функций для CMake -|`cmake/doc` | Правила для автоматической генерации документации |`cmake/etc` | Файлы настроек, используемые в CMake |`cmake/etc/uncrustify` | Файл настройки для программы автоматического форматирования исходных текстов |`cmake/find` | Модули CMake для поиска внешних программ и библиотек @@ -129,7 +127,6 @@ git init git submodule add https://git.246060.ru/f1x1t/cmlib.git cmake/cmlib git submodule add https://git.246060.ru/f1x1t/cmake-find.git cmake/find git submodule add https://git.246060.ru/f1x1t/cmake-generators.git cmake/generators -git submodule add https://git.246060.ru/f1x1t/cmake-doc.git cmake/doc git commit -a -m "Начало проекта" ---- @@ -158,9 +155,6 @@ git push -u origin master [submodule "cmake/generators"] path = cmake/generators url = git@git.246060.ru:f1x1t/cmake-generators.git -[submodule "cmake/doc"] - path = cmake/doc - url = git@git.246060.ru:f1x1t/cmake-doc.git ---- на @@ -176,9 +170,6 @@ git push -u origin master [submodule "cmake/generators"] path = cmake/generators url = ../../f1x1t/cmake-generators.git -[submodule "cmake/doc"] - path = cmake/doc - url = ../../f1x1t/cmake-doc.git ---- Обновить пути и сохранить изменения: @@ -504,7 +495,8 @@ cmlib_generate_private_config_hpp() add_subdirectory(src/cmlib-example) # Документация -add_subdirectory(cmake/doc) +add_breathe_target(doc-breathe) +add_doxygen_target(doc-doxygen LATEX YES HTML YES) # Создание вспомогательных символических ссылок add_dependencies(cmlib-example create_auxilary_symlinks) @@ -620,7 +612,8 @@ cmlib_generate_private_config_hpp() add_subdirectory(src/cmlib-example) # Документация -add_subdirectory(cmake/doc) +add_breathe_target(doc-breathe) +add_doxygen_target(doc-doxygen LATEX YES HTML YES) # Создание вспомогательных символических ссылок add_dependencies(cmlib-example create_auxilary_symlinks) @@ -1545,12 +1538,68 @@ make all_unity === Документирование кода -Надо написать. +Для документирования кода используются блоки комментариев, +оформленные для обработки программой https://www.doxygen.nl[Doxygen]. +Установка программы: + +[source,sh] +---- +sudo apt-get install doxygen +---- + +Пример комментария: + +[source,c++] +---- +/** + * @brief Базовый класс + */ +class Base { +public: + /** + * @brief Конструктор + */ + Base(); + /** + * @brief Деструктор + */ + ~Base(); + /** + * @brief Вычисление квадратного корня + * @param value Входное значение + * @return Квадратный корень от value + */ + double sqrt(double value); +}; +---- + +Поддержка автоматической генерации документации реализована +в функциях библиотеки CMLib `add_doxygen_target` и +`add_breathe_target`, которые необходимо вызвать в основном +файле `CMakeLists.txt` проекта. + +[source,cmake] +---- +# Документация +add_doxygen_target(doc-doxygen LATEX YES HTML YES) +add_breathe_target(doc-breathe) +---- + +В результате будут добавлены цели `doc-doxygen` и `doc-breathe`, +которые можно использовать после конфигурирования проекта: + +[source,cmake] +---- +make doc-doxygen +make doc-breathe +---- -Поддержка документирования кода реализована в функциях -`add_doxygen` и `add_breathe`, для исполнения которых -добавляются цели `doc-doxygen` и `doc-breathe`. Шаблоны для комментирования файлов, классов и функций можно автоматически расставить в файлах исходных кодов исполнением цели `doc-add-comments` при наличии установленной -программы `uncrustify`. +программы `uncrustify`: + +[source,cmake] +---- +make doc-add-comments +---- diff --git a/wiki/Prog/Git/Git основные команды.adoc b/wiki/Prog/Git/Git основные команды.adoc index 982cd05..9db61bb 100644 --- a/wiki/Prog/Git/Git основные команды.adoc +++ b/wiki/Prog/Git/Git основные команды.adoc @@ -62,9 +62,9 @@ untracked -> staged: git add staged -> unmodified: git commit unmodified -> modified: редактирование modified -> staged: git add -modified -> untracked: git rm --cached -unmodified -> untracked: git rm --cached -staged -> untracked: git rm --cached +modified -> untracked: git rm ~--cached +unmodified -> untracked: git rm ~--cached +staged -> untracked: git rm ~--cached @enduml ---- @@ -125,7 +125,7 @@ participant remote as "Удалённый репозиторий\n(remote rep [-> workspace : Начало работы activate workspace remote -> local : Получение изменений с сервера\ngit fetch -remote -> local : Обновление подмодулей\ngit submodule update --recursive --init +remote -> local : Обновление подмодулей\ngit submodule update ~--recursive ~--init workspace <-> local : Просмотр информации\ngit status workspace <-> local : Переход на ветку master\ngit checkout master local -> workspace : Слияние с удалённой веткой\ngit merge origin/master @@ -135,11 +135,45 @@ workspace ->o workspace : Редактирование workspace <-> local : Просмотр изменений\ngit diff workspace -> index : Занесение файлов в индекс\ngit add index -> local : Фиксация изменений\ngit commit -local ->o local : Присвоение ветки осмысленного названия\ngit branch -m temp branch_name -local ->o local : Переход на ветку\ngit checkout branch_name +local ->o local : Присвоение ветки осмысленного названия\ngit branch -m temp new_task +local ->o local : Переход на ветку\ngit checkout new_task remote -> local : Получение изменений с сервера\ngit fetch -local ->o local : Слияние изменений с сервера в текущую ветку (branch_name)\ngit merge origin/master -local -> remote : Отправка ветки на сервер\ngit push origin branch_name +local ->o local : Слияние изменений с сервера в текущую ветку (new_task)\ngit merge origin/master +local -> remote : Отправка ветки на сервер\ngit push origin new_task +remote ->] : Создание запроса на слияние +deactivate workspace +@enduml +---- + +Альтернативный пример действий, выполняемых пользователем в совместном +проекте, приведён на <>. + +[[workflow-alt]] +[.text-center] +.Альтернативная последовательность действий +[plantuml] +---- +@startuml +skinparam defaultFontSize 24 +skinparam padding 16 + +participant workspace as "Рабочий каталог\n(working dir)" +participant index as "Индекс\n(index)" #77FF77 +participant local as "Локальный репозиторий\n(local repository)" #FF7777 +participant remote as "Удалённый репозиторий\n(remote repository)" #7777FF + +[-> workspace : Начало работы +activate workspace +workspace <-> local : Переход на локальную ветку master\ngit checkout master +remote -> workspace : Слияние с удалённой веткой и обновление рабочего каталога\ngit pull +workspace <-> local : Создание новой ветки\ngit checkout -b new_task +workspace ->o workspace : Редактирование +workspace <-> local : Просмотр изменений\ngit diff +workspace -> index : Занесение файлов в индекс\ngit add +index -> local : Фиксация изменений\ngit commit +remote -> local : Получение изменений с сервера\ngit fetch +local ->o local : Слияние изменений с сервера в текущую ветку (new_task)\ngit merge origin/master +local -> remote : Отправка ветки на сервер\ngit push origin new_task remote ->] : Создание запроса на слияние deactivate workspace @enduml