[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