Документирование кода. Как использовать 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
К сожалению, в вашем Makefile отсутствует правило для создания документации с использованием gtk-doc. Ниже я предлагаю вам обновленный Makefile, в котором добавлено правило для создания документации:
Теперь при вызове make doc будет генерироваться документация с использованием gtk-doc для вашего кода GObject. Пожалуйста, убедитесь, что у вас установлены все необходимые пакеты для работы с gtk-doc перед запуском этой команды.
К сожалению, в вашем Makefile отсутствует правило для создания документации с использованием gtk-doc. Ниже я предлагаю вам обновленный Makefile, в котором добавлено правило для создания документации:
objects = main.o example_person.osource = 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 перед запуском этой команды.