Документирование кода. Как использовать 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
219 +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 Апр 2024 в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир