Генерация (и установка) Документация Doxygen с AutoTools

StackOverflow https://stackoverflow.com//questions/10682603

  •  12-12-2019
  •  | 
  •  

Вопрос

Я пишу библиотеку (используя libtools), где вся документация API выполняется с использованием doxygen.

Интересно, есть ли простой способ интеграции установки созданной документации Doxygen в AutoTools.

Я полагаю, что создание документации должно быть достаточно легко. Но как только я пробежал Doxygen, какой правильный способ получить сгенерированные файлы (например) .html в $ (HTMLDIR)?

Проблема, кажется, я не знаю (и я не хочу знать), какие файлы doxygen собираются создать для меня, поэтому я не могу действительно перечислить их в HTML_DATA

Я рисую что-то вроде 'html_data= html /*.*' - pass идея

Это было полезно?

Решение

Пока у меня нет большого опыта работы с AutoTools сам, на этой почтовой теме сделано несколько предложений, которые могут быть использованы: http://old.nable.com/How-to-install-doxygen - HTML-документация - TD17029178.HTML

Другие советы

Это может быть более компактно использовать некоторые внесенные макросы.Здесь я выяснил простой способ, основанный на примерах из книги AutoTools от John Calcote PG 246.

Добавьте следующее на Configure.ac чуть выше

AC_CONFIG_FILES([Makefile
.

Линия

AC_CHECK_PROGS([DOXYGEN], [doxygen])
if test -z "$DOXYGEN"; then
   AC_MSG_WARN([Doxygen not found - continue without Doxygen support])
fi
AC_CHECK_PROGS([DOT], [dot])
if test -z "$DOT"; then
   AC_MSG_ERROR([Doxygen needs dot, please install dot first])
fi
AC_CHECK_PROGS([PDFLATEX], [pdflatex])
if test -z "$PDFLATEX"; then
   AC_MSG_ERROR([Doxygen needs pdflatex program, it is part of TeX http://www.tug.org/texlive/acquire-netinstall.html])
fi
AM_CONDITIONAL([HAVE_DOXYGEN], [test -n "$DOXYGEN"])
AM_COND_IF([HAVE_DOXYGEN], [AC_CONFIG_FILES([docs/Doxyfile])])
AM_COND_IF([HAVE_DOXYGEN], [AC_CONFIG_FILES([docs/Makefile])])
.

в каталоге проектаdir / docs

Добавить два файла: doxyfile.in и makefile.am

Используйте переменную замены, например:

PROJECT_NAME           = @PACKAGE_NAME@
PROJECT_NUMBER         = @PACKAGE_VERSION@
INPUT                  = @top_srcdir@
.

Затем внесите правильную модификацию на другие поля конфигурации Doxygen.

LATEX_OUTPUT           = latex
PDF_HYPERLINKS         = YES
USE_PDFLATEX           = YES
.

Таким образом, вы будете генерировать файл PDF.

makefile.am должен быть простым:

if HAVE_DOXYGEN
directory = $(top_srcdir)/docs/man/man3

man_MANS = $(directory)

$(directory): doxyfile.stamp

doxyfile.stamp: Doxyfile
    $(DOXYGEN) $^
    cd latex && $(MAKE)
    echo Timestamp > $@

CLEANFILES = doxyfile.stamp

all-local: doxyfile.stamp
clean-local:
    -rm -rf $(top_srcdir)/docs/man

endif
.

(Убедитесь, что вы уважаете вдавливание makefile во время копирования этого.)

Это, казалось, работало для меня.Полученная документация генерируется в папке документов.Пожалуйста, дайте мне знать, если я сделал какие-либо ошибки.

Я использую макрос Oren Ben-Kiki, см. http://www.ben-Kiki.org/oren/Doxamplem/ или Google это.Сценарий создает документацию Doxygen в формате PDF / HTML / Man (настраиваемый).

Добавить свои сгенерированные файлы справки в список * dist_doc_data * в makefile.am, чтобы они установили.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top