[CMake] doxygen
Philippe Poilbarbe
Philippe.Poilbarbe at cls.fr
Thu Aug 24 12:43:42 EDT 2006
Stephen Adler a écrit :
> Can someone give me sample CMakeLists.txt entry for doxygen
> documentation generation?
> Currently I'm only generating html output.
>
Here is 3 files I did use for a project (they all are in a subdirectory
called 'doxygen'):
- CMakeLists.txt which activate documentation generation (also at the end
with comments striped))
- doxygen.conf.in a template file for doxygen parameters. All
comments have been
stripped to save space in the mail (but you can retrieve them since
they are those
written by doxygen itself)
- CompileLatex.pl a perl script used to compile latex documentation
(In this case I find simpler using a perl script) but as you don't want
latex....
Each appearance of the project name have been replaced by MYPROJECT
in CMakeLists.txt and doxygen.conf.in.
Latex generation have been disabled (commented out)
In the CMakeLists.txt of the parent directory of 'doxygen' we have:
INCLUDE(FindDoxygen)
IF (DOXYGEN)
ADD_SUBDIRECTORY(doxygen)
ELSE (DOXYGEN)
MESSAGE(STATUS "WARNING: Doxygen not found - Reference manual will
not be created")
ENDIF (DOXYGEN)
--
Philippe Poilbarbe
CLS - Space Oceanography Division
==================================================================================
OPTION(MYPROJECT_DOC_WITH_STATIC "Create documentation for static
members" ON)
OPTION(MYPROJECT_DOC_WITH_PRIVATE "Create documentation for private
members" OFF)
OPTION(MYPROJECT_DOC_WITH_LOCAL "Create documentation for local members"
OFF)
OPTION(MYPROJECT_DOC_WITH_INTERNAL "Create documentation for internal
features" OFF)
MARK_AS_ADVANCED(
MYPROJECT_DOC_WITH_PRIVATE
MYPROJECT_DOC_WITH_STATIC
MYPROJECT_DOC_WITH_LOCAL
MYPROJECT_DOC_WITH_INTERNAL
)
FIND_PACKAGE(HTMLHelp)
IF (HTML_HELP_COMPILER)
SET(DOXYGEN_HTMLHELP YES)
ELSE (HTML_HELP_COMPILER)
SET(DOXYGEN_HTMLHELP NO)
ENDIF (HTML_HELP_COMPILER)
SET(DOXYGEN_LATEX NO)
SET(DOXYGEN_PDFLATEX NO)
SET(DOXYGEN_PDF_HYPERLINKS NO)
IF (MYPROJECT_DOC_WITH_PRIVATE)
SET(DOXYGEN_EXTRACT_PRIVATE YES)
ELSE (MYPROJECT_DOC_WITH_PRIVATE)
SET(DOXYGEN_EXTRACT_PRIVATE NO)
ENDIF (MYPROJECT_DOC_WITH_PRIVATE)
IF (MYPROJECT_DOC_WITH_STATIC)
SET(DOXYGEN_EXTRACT_STATIC YES)
ELSE (MYPROJECT_DOC_WITH_STATIC)
SET(DOXYGEN_EXTRACT_STATIC NO)
ENDIF (MYPROJECT_DOC_WITH_STATIC)
IF (MYPROJECT_DOC_WITH_LOCAL)
SET(DOXYGEN_EXTRACT_LOCAL YES)
ELSE (MYPROJECT_DOC_WITH_LOCAL)
SET(DOXYGEN_EXTRACT_LOCAL NO)
ENDIF (MYPROJECT_DOC_WITH_LOCAL)
IF (MYPROJECT_DOC_WITH_INTERNAL)
SET(DOXYGEN_EXTRACT_INTERNAL YES)
ELSE (MYPROJECT_DOC_WITH_INTERNAL)
SET(DOXYGEN_EXTRACT_INTERNAL NO)
ENDIF (MYPROJECT_DOC_WITH_INTERNAL)
IF (DOT)
SET(HAVE_DOT YES)
ELSE (DOT)
SET(HAVE_DOT NO)
ENDIF (DOT)
SET(DOXYGEN_LANGUAGE "English" CACHE STRING "Language used by doxygen")
MARK_AS_ADVANCED(DOXYGEN_LANGUAGE)
SET(DOXYGEN_SOURCE_DIR
sourcedir1
sourcedir2
...
)
SET(DOXYGEN_OUTPUT_DIR wanted_output_dir)
STRING(REGEX REPLACE ";" " " DOXYGEN_INPUT_LIST "${DOXYGEN_SOURCE_DIR}")
CONFIGURE_FILE(doxygen.conf.in ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf)
SET(HTML_TARGET ${DOXYGEN_OUTPUT_DIR}/refman-html/index.html)
ADD_CUSTOM_TARGET(${HTML_TARGET} ALL
${DOXYGEN} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: DoxygenCmake.tar.gz
Type: application/x-tar
Size: 3138 bytes
Desc: not available
Url : http://public.kitware.com/pipermail/cmake/attachments/20060824/a8651f19/DoxygenCmake.tar.tar
More information about the CMake
mailing list