Skip to content

Commit ca6e6d7

Browse files
committed
pdf documentation
New CMake build option: ENABLE_DOXYGEN_PDF (OFF by default)
1 parent 09d087c commit ca6e6d7

File tree

1 file changed

+37
-2
lines changed

1 file changed

+37
-2
lines changed

docs/doxygen/CMakeLists.txt

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,16 @@ file(TO_NATIVE_PATH ${CMAKE_SOURCE_DIR} abs_top_srcdir)
1515
file(TO_NATIVE_PATH ${CMAKE_BINARY_DIR} abs_top_builddir)
1616

1717
set(HAVE_DOT ${DOXYGEN_DOT_FOUND})
18+
find_package(LATEX)
19+
option(ENABLE_DOXYGEN_PDF "Build Doxygen PDF" OFF)
20+
21+
if(ENABLE_DOXYGEN_PDF AND LATEX_FOUND)
22+
set(enable_latex_docs YES)
23+
else()
24+
set(enable_latex_docs NO)
25+
endif()
26+
1827
set(enable_html_docs YES)
19-
set(enable_latex_docs NO)
2028
set(enable_mathjax NO)
2129
set(enable_xml_docs YES)
2230

@@ -25,7 +33,13 @@ configure_file(
2533
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
2634
@ONLY)
2735

28-
set(BUILT_DIRS ${CMAKE_CURRENT_BINARY_DIR}/xml ${CMAKE_CURRENT_BINARY_DIR}/html)
36+
if(enable_html_docs)
37+
list(APPEND BUILT_DIRS ${CMAKE_CURRENT_BINARY_DIR}/html)
38+
endif()
39+
40+
if(enable_xml_docs)
41+
list(APPEND BUILT_DIRS ${CMAKE_CURRENT_BINARY_DIR}/xml)
42+
endif()
2943

3044
########################################################################
3145
# Make and install doxygen docs
@@ -39,4 +53,25 @@ add_custom_command(
3953

4054
add_custom_target(doxygen_target ALL DEPENDS ${BUILT_DIRS})
4155

56+
########################################################################
57+
# Make and install doxygen PDF docs
58+
########################################################################
59+
if(enable_latex_docs)
60+
add_custom_command(
61+
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.pdf
62+
COMMAND ${LATEX_COMPILER} ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.tex
63+
COMMAND ${LATEX_COMPILER} ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.tex
64+
COMMAND ${LATEX_COMPILER} ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.tex
65+
COMMAND ${DVIPDF_CONVERTER} ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.dvi
66+
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/latex
67+
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/latex/Makefile
68+
COMMENT "Generating PDF documentation with latex")
69+
70+
add_custom_target(doxygen_pdf_target ALL
71+
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.pdf)
72+
73+
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/latex/refman.pdf
74+
DESTINATION ${GR_PKG_DOC_DIR})
75+
endif()
76+
4277
install(DIRECTORY ${BUILT_DIRS} DESTINATION ${GR_PKG_DOC_DIR})

0 commit comments

Comments
 (0)