Документирование кода. Как использовать gtk-doc? 2
голос «против»
избранное
Имеется код созданный на основе GObject который необходимо задокументировать, обнаружил, что для этой цели есть gtk-doc, который способен кроме описания функций еще документировать сигналы и свойства объекта. Использовал это: https://wiki.gnome.org/DocumentationProject/GtkDoc и это https://developer.gnome.org/gtk-doc-manual/stable/ . Документация должна собиратся "make doc".
Вопрос как создать рабочий Makefile?
Makefile:objects = main.o example_person.o
source = main.c example_person.c
bin = main
DOC_MODULE = example_person
CC=gcc
CFLAGS = -g -O0 --std=gnu99 -Wall -Wextra -Wno-unused-parameter \
$(shell pkg-config --cflags gobject-2.0)
LIBS = $(shell pkg-config --libs gobject-2.0)
ALL_FLAGS = $(CFLAGS)
ALL_LIBS = $(CFLAGS) $(LIBS)
$(bin): $(objects)
$(CC) $(ALL_LIBS) -o $(bin) $(objects)
$(objects): $(source)
$(CC) $(ALL_FLAGS) -c $(source)
clean:
rm -f $(bin)
rm -f *.o
// Создание документации "make doc"
doc:
@echo "doc generator ... "
# sources have changed
gtkdoc-scan --module="$(DOC_MODULE)"
gtkdoc-scangobj --module="$(DOC_MODULE)" --output-dir=gen --cc="$(CC)" --cflags="$(CFLAGS)" --ldflags="$(LIBS)"
gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --source-dir=src
# xml files have changed
mkdir html
cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml
gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html

21 Авг 2019 в 06:24
195 +1
0
Ответы
1

К сожалению, в вашем Makefile отсутствует правило для создания документации с использованием gtk-doc. Ниже я предлагаю вам обновленный Makefile, в котором добавлено правило для создания документации:

objects = main.o example_person.o
source = main.c example_person.c
bin = main
DOC_MODULE = example_person
CC=gcc
CFLAGS = -g -O0 --std=gnu99 -Wall -Wextra -Wno-unused-parameter $(shell pkg-config --cflags gobject-2.0)
LIBS = $(shell pkg-config --libs gobject-2.0)
ALL_FLAGS = $(CFLAGS)
ALL_LIBS = $(CFLAGS) $(LIBS)
$(bin): $(objects)
$(CC) $(ALL_LIBS) -o $(bin) $(objects)
$(objects): $(source)
$(CC) $(ALL_FLAGS) -c $(source)
clean:
rm -f $(bin)
rm -f *.o
doc:
gtkdoc-scangobj --module=$(DOC_MODULE) --source-dir=. --output-dir=gtkdoc
gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --source-dir=. --sgml-mode
gtkdoc-mkhtml --module=$(DOC_MODULE) --output-dir=html --template-dir=/usr/share/gtk-doc/data/gtk-doc/html --path=gtkdoc
gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html
.PHONY: clean doc

Теперь при вызове make doc будет генерироваться документация с использованием gtk-doc для вашего кода GObject. Пожалуйста, убедитесь, что у вас установлены все необходимые пакеты для работы с gtk-doc перед запуском этой команды.

20 Апр в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир