Skip to content

Commit 50a1412

Browse files
committed
Setup for doxygen documentation
In #11006 we saw problem regarding the usage of jquery.js in CHM but there were in the doxygen documentation CHM file also problems regarding the clipboard.js and menu.js (due to the incorrect setting of `HTML_COPY_CLIPBOARD` and `HTML_DYNAMIC_MENUS` (only one set of examples was generated and this was geared towards the "normal" html documenaton). Now 2 sets of examples are generated (one for the "normal" html documentation and one for the chm documentation) and furthermore the stylesheet usage in the examples has been mad compatible with the doxygen documentation and in the examples for the "normal" html documentation the `HTML_COLORSTYLE=TOGGLE` is used to be consistent with the main documentation.
1 parent 1b55a8f commit 50a1412

File tree

5 files changed

+79
-32
lines changed

5 files changed

+79
-32
lines changed

doc/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ if (build_doc_chm)
252252
add_custom_target(docs_chm
253253
COMMENT "Generating CHM documentation."
254254
COMMAND ${CMAKE_COMMAND} -E env VERSION=${VERSION} HTML_HELP_COMPILER=${HTML_HELP_COMPILER} INDEX_DOC=index_html.dox ${DOXYGEN_EXECUTABLE} Doxyfile_chm
255-
COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_BINARY_DIR}/html/examples ${PROJECT_BINARY_DIR}/chm/examples
255+
COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_BINARY_DIR}/chm/html/examples ${PROJECT_BINARY_DIR}/chm/examples
256256
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/chm/index.hhp ${PROJECT_BINARY_DIR}/chm/doxygen_manual.hhp
257257
COMMAND ${CMAKE_COMMAND} -E echo "import os" > ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py
258258
COMMAND ${CMAKE_COMMAND} -E echo "for root, dirs, files in os.walk('examples'):" >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py
@@ -265,7 +265,7 @@ add_custom_target(docs_chm
265265
DEPENDS ${PROJECT_BINARY_DIR}/doc/language.dox ${PROJECT_BINARY_DIR}/doc/config.dox
266266
DEPENDS ${OUT_DOC_FILES}
267267
DEPENDS ${OUT_DOC_CHM_FILES}
268-
DEPENDS examples
268+
DEPENDS examples_chm
269269
DEPENDS doxygen
270270
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/doc/
271271
)

examples/CMakeLists.txt

Lines changed: 65 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,24 @@ file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/examples
33
${PROJECT_BINARY_DIR}/latex/examples)
44
file(GLOB EXAMPLE_FILES RELATIVE ${PROJECT_SOURCE_DIR}/examples "*")
55

6+
if (build_doc_chm)
7+
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/chm/html/examples)
8+
endif()
9+
610
if (DOT)
711
set(DIAGRAM_EXAMPLE ${PROJECT_BINARY_DIR}/html/examples/diagrams/html/index.html)
12+
if (build_doc_chm)
13+
set(DIAGRAM_CHM_EXAMPLE ${PROJECT_BINARY_DIR}/chm/html/examples/diagrams/html/index.html)
14+
endif()
815
endif()
916

10-
add_custom_command(
11-
COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/examples/baseexample.cfg" "${PROJECT_BINARY_DIR}/examples/"
12-
DEPENDS "${PROJECT_SOURCE_DIR}/examples/baseexample.cfg"
13-
OUTPUT "${PROJECT_BINARY_DIR}/examples/baseexample.cfg"
14-
)
15-
set_source_files_properties("${PROJECT_BINARY_DIR}/examples/baseexample.cfg" PROPERTIES GENERATED 1)
17+
foreach (f ${EXAMPLE_FILES})
18+
configure_file(${PROJECT_SOURCE_DIR}/examples/${f} ${PROJECT_BINARY_DIR}/examples/${f} COPYONLY)
19+
set_source_files_properties("${PROJECT_BINARY_DIR}/examples/${f}" PROPERTIES GENERATED 1)
20+
endforeach()
1621

1722
foreach (f ${EXAMPLE_FILES})
18-
add_custom_command(
19-
COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/examples/${f}" "${PROJECT_BINARY_DIR}/examples/"
20-
DEPENDS "${PROJECT_SOURCE_DIR}/examples/${f}"
21-
OUTPUT "${PROJECT_BINARY_DIR}/examples/${f}"
22-
)
23-
set_source_files_properties("${PROJECT_BINARY_DIR}/examples/${f}" PROPERTIES GENERATED 1)
24-
list(APPEND OUT_EXAMPLE_FILES "${PROJECT_BINARY_DIR}/examples/${f}")
23+
list(APPEND OUT_EXAMPLE_FILES "${PROJECT_BINARY_DIR}/examples/${f}")
2524
endforeach()
2625

2726
# name file extension dependency (optional)
@@ -63,41 +62,79 @@ set(BASIC_EXAMPLES
6362
)
6463

6564
configure_file(${PROJECT_SOURCE_DIR}/templates/icon/doxygen.ico ${PROJECT_BINARY_DIR}/examples/doxygen.ico COPYONLY)
65+
configure_file(${PROJECT_SOURCE_DIR}/doc/doxygen_manual.css ${PROJECT_BINARY_DIR}/examples/doxygen_manual.css COPYONLY)
66+
configure_file(${PROJECT_SOURCE_DIR}/doc/doxygen_manual_chm.css ${PROJECT_BINARY_DIR}/examples/doxygen_manual_chm.css COPYONLY)
6667

6768
foreach (f_inp ${BASIC_EXAMPLES})
68-
list(LENGTH ${f_inp} f_len)
69-
list(GET ${f_inp} 0 f)
70-
list(GET ${f_inp} 1 f_ext)
71-
set(f_dep "")
72-
if (${f_len} GREATER 2)
73-
list(GET ${f_inp} 2 f_dep)
74-
set(f_dep "${PROJECT_BINARY_DIR}/html/examples/${f_dep}/html/index.html")
75-
endif()
69+
list(LENGTH ${f_inp} f_len)
70+
list(GET ${f_inp} 0 f)
71+
list(GET ${f_inp} 1 f_ext)
72+
set(f_dep "")
73+
set(f_dep_chm "")
74+
if (${f_len} GREATER 2)
75+
list(GET ${f_inp} 2 f_dep)
76+
list(GET ${f_inp} 2 f_dep_chm)
77+
set(f_dep "${PROJECT_BINARY_DIR}/html/examples/${f_dep}/html/index.html")
78+
if (build_doc_chm)
79+
set(f_dep_chm "${PROJECT_BINARY_DIR}/chm/html/examples/${f_dep_chm}/html/index.html")
80+
endif()
81+
endif()
7682
add_custom_command(
7783
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/html/examples/${f}
7884
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/latex/examples/${f}
79-
COMMAND ${CMAKE_COMMAND} -E env PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} ${EXECUTABLE_OUTPUT_PATH}/doxygen ${f}.cfg
85+
COMMAND ${CMAKE_COMMAND} -E env PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} EXTRA_SETTINGS=docuexample.cfg ${EXECUTABLE_OUTPUT_PATH}/doxygen ${f}.cfg
8086
COMMAND ${Python_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman.tex > ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman_doc.tex
81-
DEPENDS doxygen ${f}.${f_ext} ${f}.cfg ${TOP}/examples/strip_example.py ${f_dep} baseexample.cfg
82-
OUTPUT ${PROJECT_BINARY_DIR}/html/examples/${f}/html/index.html ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman_doc.tex
87+
DEPENDS doxygen ${f}.${f_ext} ${f}.cfg ${TOP}/examples/strip_example.py ${f_dep} baseexample.cfg docuexample.cfg
88+
OUTPUT ${PROJECT_BINARY_DIR}/html/examples/${f}/html/index.html ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman_doc.tex
89+
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/examples
8390
)
8491
set(EXAMPLES_RES ${EXAMPLES_RES} "" ${PROJECT_BINARY_DIR}/html/examples/${f}/html/index.html)
92+
93+
if (build_doc_chm)
94+
add_custom_command(
95+
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/chm/html/examples/${f}
96+
COMMAND ${CMAKE_COMMAND} -E env PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} EXTRA_SETTINGS=chmexample.cfg ${EXECUTABLE_OUTPUT_PATH}/doxygen ${f}.cfg
97+
DEPENDS doxygen ${f}.${f_ext} ${f}.cfg ${f_dep_chm} baseexample.cfg chmexample.cfg
98+
OUTPUT ${PROJECT_BINARY_DIR}/chm/html/examples/${f}/html/index.html
99+
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/examples
100+
)
101+
set(EXAMPLES_CHM_RES ${EXAMPLES_CHM_RES} "" ${PROJECT_BINARY_DIR}/chm/html/examples/${f}/html/index.html)
102+
endif()
85103
endforeach()
86104

87105
add_custom_target(examples
88106
DEPENDS ${OUT_EXAMPLE_FILES}
89107
${EXAMPLES_RES}
90108
${DIAGRAM_EXAMPLE}
91-
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/examples
109+
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/examples
92110
)
93111

112+
if (build_doc_chm)
113+
add_custom_target(examples_chm
114+
DEPENDS ${OUT_EXAMPLE_FILES}
115+
${EXAMPLES_CHM_RES}
116+
${DIAGRAM_CHM_EXAMPLE}
117+
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/examples
118+
)
119+
endif()
120+
94121
if (DOT)
95122
add_custom_command(
96123
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/html/examples/diagrams
97124
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/latex/examples/diagrams
98-
COMMAND ${CMAKE_COMMAND} -E env PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} ${EXECUTABLE_OUTPUT_PATH}/doxygen diagrams.cfg
125+
COMMAND ${CMAKE_COMMAND} -E env PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} EXTRA_SETTINGS=docuexample.cfg ${EXECUTABLE_OUTPUT_PATH}/doxygen diagrams.cfg
99126
COMMAND ${Python_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman.tex > ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman_doc.tex
100-
DEPENDS doxygen diagrams_a.h diagrams_b.h diagrams_c.h diagrams_d.h diagrams_e.h diagrams.cfg ${TOP}/examples/strip_example.py baseexample.cfg
101-
OUTPUT ${PROJECT_BINARY_DIR}/html/examples/diagrams/html/index.html ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman_doc.tex
127+
DEPENDS doxygen diagrams_a.h diagrams_b.h diagrams_c.h diagrams_d.h diagrams_e.h diagrams.cfg ${TOP}/examples/strip_example.py baseexample.cfg docuexample.cfg
128+
OUTPUT ${PROJECT_BINARY_DIR}/html/examples/diagrams/html/index.html ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman_doc.tex
129+
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/examples
102130
)
131+
if (build_doc_chm)
132+
add_custom_command(
133+
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/chm/html/examples/diagrams
134+
COMMAND ${CMAKE_COMMAND} -E env PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} EXTRA_SETTINGS=chmexample.cfg ${EXECUTABLE_OUTPUT_PATH}/doxygen diagrams.cfg
135+
DEPENDS doxygen diagrams_a.h diagrams_b.h diagrams_c.h diagrams_d.h diagrams_e.h diagrams.cfg baseexample.cfg chmexample.cfg
136+
OUTPUT ${PROJECT_BINARY_DIR}/chm/html/examples/diagrams/html/index.html
137+
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/examples
138+
)
139+
endif()
103140
endif(DOT)

examples/baseexample.cfg

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
OUTPUT_DIRECTORY = $(PROJECT_BINARY_DIR)
21
PROJECT_ICON = ../examples/doxygen.ico
32
CASE_SENSE_NAMES = NO
43
QUIET = YES
@@ -7,4 +6,5 @@ SEARCHENGINE = NO
76
LATEX_HIDE_INDICES = YES
87
COMPACT_LATEX = YES
98
WARN_AS_ERROR = FAIL_ON_WARNINGS
10-
HTML_COLORSTYLE = LIGHT
9+
HTML_PROJECT_COOKIE = doxygen_docs
10+
@INCLUDE = $(EXTRA_SETTINGS)

examples/chmexample.cfg

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
HTML_COLORSTYLE = LIGHT
2+
HTML_DYNAMIC_MENUS = NO
3+
HTML_COPY_CLIPBOARD = NO
4+
GENERATE_LATEX = NO
5+
OUTPUT_DIRECTORY = $(PROJECT_BINARY_DIR)/chm
6+
HTML_EXTRA_STYLESHEET = doxygen_manual_chm.css

examples/docuexample.cfg

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
OUTPUT_DIRECTORY = $(PROJECT_BINARY_DIR)
2+
HTML_COLORSTYLE = TOGGLE
3+
HTML_PROJECT_COOKIE = doxygen_docs
4+
HTML_EXTRA_STYLESHEET = doxygen_manual.css

0 commit comments

Comments
 (0)