File: OpenMSBuildSystem_doc.cmake

package info (click to toggle)
openms 1.11.1-5
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 436,688 kB
  • ctags: 150,907
  • sloc: cpp: 387,126; xml: 71,547; python: 7,764; ansic: 2,626; php: 2,499; sql: 737; ruby: 342; sh: 325; makefile: 128
file content (217 lines) | stat: -rw-r--r-- 15,332 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
#######################################################################
#create Doxyfiles for html documentation
set(CF_OPENMS_BIN_PATH ${PROJECT_BINARY_DIR})
set(CF_OPENMS_SRC_PATH ${PROJECT_SOURCE_DIR})

find_package(Doxygen)
find_package(LATEX)

if (DOXYGEN_FOUND)
  configure_file(${PROJECT_SOURCE_DIR}/doc/doxygen/Doxyfile.in ${PROJECT_BINARY_DIR}/doc/doxygen/Doxyfile)
  configure_file(${PROJECT_SOURCE_DIR}/doc/doxygen/Doxyfile_dot.in ${PROJECT_BINARY_DIR}/doc/doxygen/Doxyfile_dot)
  configure_file(${PROJECT_SOURCE_DIR}/doc/doxygen/Doxyfile_noclass.in ${PROJECT_BINARY_DIR}/doc/doxygen/Doxyfile_noclass)
  configure_file(${PROJECT_SOURCE_DIR}/doc/doxygen/Doxyfile_xml.in ${PROJECT_BINARY_DIR}/doc/doxygen/Doxyfile_xml)
  configure_file(${PROJECT_SOURCE_DIR}/doc/OpenMS_tutorial/Doxyfile.in ${PROJECT_BINARY_DIR}/doc/OpenMS_tutorial/Doxyfile)
  configure_file(${PROJECT_SOURCE_DIR}/doc/TOPP_tutorial/Doxyfile.in ${PROJECT_BINARY_DIR}/doc/TOPP_tutorial/Doxyfile)

  #######################################################################
  #create refman files for PDF tutorials
  configure_file(${PROJECT_SOURCE_DIR}/doc/OpenMS_tutorial/refman_overwrite.tex.in ${PROJECT_BINARY_DIR}/doc/OpenMS_tutorial/refman_overwrite.tex)
  configure_file(${PROJECT_SOURCE_DIR}/doc/TOPP_tutorial/refman_overwrite.tex.in ${PROJECT_BINARY_DIR}/doc/TOPP_tutorial/refman_overwrite.tex)


  #######################################################################
  ##doc_param_internal target
	if(NOT MSVC)
		set(_TOPPDOCUMENTER_EXECUTABLE "${PROJECT_BINARY_DIR}/doc/doxygen/parameters/TOPPDocumenter")
		set(_DEFAULTPARAMHANDLERDOCUMENTER_EXECUTABLE "${PROJECT_BINARY_DIR}/doc/doxygen/parameters/DefaultParamHandlerDocumenter")
		set(_BINARY_PATH "${PROJECT_BINARY_DIR}/bin")
	else()
		set(_TOPPDOCUMENTER_EXECUTABLE "${PROJECT_BINARY_DIR}/doc/doxygen/parameters/$(ConfigurationName)/TOPPDocumenter")
		set(_DEFAULTPARAMHANDLERDOCUMENTER_EXECUTABLE "${PROJECT_BINARY_DIR}/doc/doxygen/parameters/$(ConfigurationName)/DefaultParamHandlerDocumenter")		
		set(_BINARY_PATH "${PROJECT_BINARY_DIR}/bin/$(ConfigurationName)")
	endif()
	
	file(TO_NATIVE_PATH "${_TOPPDOCUMENTER_EXECUTABLE}" TOPPDOCUMENTER_EXECUTABLE)
	file(TO_NATIVE_PATH "${_DEFAULTPARAMHANDLERDOCUMENTER_EXECUTABLE}" DEFAULTPARAMHANDLERDOCUMENTER_EXECUTABLE)
	file(TO_NATIVE_PATH "${_BINARY_PATH}" BINARY_PATH)
	
  add_custom_target(doc_param_internal
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
                    COMMAND ${CMAKE_COMMAND} -E echo "Creating the algorithm parameter and TOPP parameter documentation"
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E echo "Note: A functioning OpenMS/TOPP installation and a running X-server (Linux) is required for this step!"
                    COMMAND ${CMAKE_COMMAND} -E echo "      Windows only: OpenMS and Open_GUI.dll's need to be in your PATH!"
                    COMMAND ${CMAKE_COMMAND} -E echo "      If this step fails, use the target 'doc_minimal'."
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E echo "Building OpenMS parameter docu:"
                    COMMAND ${CMAKE_COMMAND} -E echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
                    COMMAND ${CMAKE_COMMAND} -E make_directory doc/doxygen/parameters/output/
                    COMMAND ${CMAKE_COMMAND} -E chdir doc/doxygen/parameters/ ${DEFAULTPARAMHANDLERDOCUMENTER_EXECUTABLE}
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E echo "Building TOPP/UTILS docu:"
                    COMMAND ${CMAKE_COMMAND} -E echo "~~~~~~~~~~~~~~~~~~~~~~~~~"
                    COMMAND ${CMAKE_COMMAND} -E chdir doc/doxygen/parameters/ ${TOPPDOCUMENTER_EXECUTABLE} ${BINARY_PATH}
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMENT "Build the parameters documentation"
                    VERBATIM)
	add_dependencies(doc_param_internal doc_progs)

  #######################################################################
  ## doc target
  add_custom_target(doc
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
                    COMMAND ${CMAKE_COMMAND} -E echo "Creating html documentation"
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E remove_directory doc/html
                    COMMAND ${CMAKE_COMMAND} -E chdir doc "${DOXYGEN_EXECUTABLE}" doxygen/Doxyfile
                    COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/doc/index.html doc/index.html
                    COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/doc/doxygen/common/style_ini.css doc/html/style_ini.css
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
                    COMMAND ${CMAKE_COMMAND} -E echo "The documentation has been successfully created."
                    COMMAND ${CMAKE_COMMAND} -E echo "You can now open 'doc/index.html' in a web browser."
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMENT "Build the doxygen documentation"
                    VERBATIM)
  add_dependencies(doc doc_param_internal)

  #######################################################################
  ## doc_internal target
  add_custom_target(doc_xml
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
                    COMMAND ${CMAKE_COMMAND} -E echo "Creating XML documentation"
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E remove_directory doc/xml_output
                    COMMAND ${CMAKE_COMMAND} -E chdir doc doxygen doxygen/Doxyfile_xml
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
                    COMMAND ${CMAKE_COMMAND} -E echo "The XML documentation has been successfully created."
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMENT "Build the doxygen documentation"
                    VERBATIM)

  #######################################################################
  ## doc_noclass target
  add_custom_target(doc_noclass
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
                    COMMAND ${CMAKE_COMMAND} -E echo "Creating html documentation without class documentation"
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E remove_directory doc/html
                    COMMAND ${CMAKE_COMMAND} -E chdir doc doxygen doxygen/Doxyfile_noclass
                    COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/doc/index.html doc/index.html
                    COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/doc/doxygen/common/style_ini.css doc/html/style_ini.css
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
                    COMMAND ${CMAKE_COMMAND} -E echo "The documentation has been successfully created."
                    COMMAND ${CMAKE_COMMAND} -E echo "You can now open 'doc/index.html' in a web browser."
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMENT "Build the doxygen documentation"
                    VERBATIM)
  add_dependencies(doc_noclass doc_param_internal)

  #######################################################################
  ## doc_minimal target
  add_custom_target(doc_minimal
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
                    COMMAND ${CMAKE_COMMAND} -E echo "Creating html documentation without class/TOPP/UTILS documentation"
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E remove_directory doc/html
                    COMMAND ${CMAKE_COMMAND} -E chdir doc doxygen doxygen/Doxyfile_noclass
                    COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/doc/index.html doc/index.html
                    COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/doc/doxygen/common/style_ini.css doc/html/style_ini.css
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
                    COMMAND ${CMAKE_COMMAND} -E echo "The documentation has been successfully created."
                    COMMAND ${CMAKE_COMMAND} -E echo "You can now open 'doc/index.html' in a web browser."
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMENT "Build the doxygen documentation"
                    VERBATIM)

  if (DOXYGEN_DOT_FOUND OR DOXYGEN_DOT_EXECUTABLE)
    #######################################################################
    ## doc_dot target
    add_custom_target(doc_dot
                      COMMAND ${CMAKE_COMMAND} -E echo ""
                      COMMAND ${CMAKE_COMMAND} -E echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
                      COMMAND ${CMAKE_COMMAND} -E echo "Creating DOT html documentation"
                      COMMAND ${CMAKE_COMMAND} -E echo ""
                      COMMAND ${CMAKE_COMMAND} -E remove_directory doc/html-dot
                      COMMAND ${CMAKE_COMMAND} -E chdir doc doxygen doxygen/Doxyfile_dot
                      COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/doc/index.html doc/index.html
                      COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/doc/doxygen/common/style_ini.css doc/html/style_ini.css
                      COMMAND ${CMAKE_COMMAND} -E echo ""
                      COMMAND ${CMAKE_COMMAND} -E echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
                      COMMAND ${CMAKE_COMMAND} -E echo "The documentation has been successfully created."
                      COMMAND ${CMAKE_COMMAND} -E echo "You can now open 'doc/index.html' in a web browser."
                      COMMAND ${CMAKE_COMMAND} -E echo ""
                      COMMENT "Build the doxygen documentation"
                      VERBATIM)
    add_dependencies(doc_dot doc_param_internal)
  else()
    Message(STATUS "DOT not found. Disabling target 'doc_dot'!")
  endif()

else()
  Message(STATUS "Doxygen not found. Disabling all documentation targets!")
endif()

if (DOXYGEN_FOUND AND LATEX_COMPILER AND DVIPS_CONVERTER)
  #######################################################################
  # doc_tutorials target
  set(DOC_TUTORIALS_ACTIVE TRUE)

  set(DOXYGEN_START_BUGGY "1.6.3")
  set(DOXYGEN_END_BUGGY "1.7.2")
  EXEC_PROGRAM(${DOXYGEN_EXECUTABLE}
    ARGS "--version"
    OUTPUT_VARIABLE DOXYGEN_VERSION)

  if (DOXYGEN_VERSION STRGREATER DOXYGEN_START_BUGGY AND DOXYGEN_VERSION STRLESS DOXYGEN_END_BUGGY )
    MESSAGE(ERROR "Warning, DoxygenBug ( 1.6.? < vers. installed < 1.7.3 ) disguises generated tex inputfiles and files will not be recognized")
  endif ()

  add_custom_target(doc_tutorials
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
                    COMMAND ${CMAKE_COMMAND} -E echo "Creating OpenMS pdf tutorial"
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E remove_directory doc/OpenMS_tutorial/latex_output
                    COMMAND ${CMAKE_COMMAND} -E chdir doc/OpenMS_tutorial/ doxygen Doxyfile
                    COMMAND ${CMAKE_COMMAND} -E copy doc/OpenMS_tutorial/refman_overwrite.tex doc/OpenMS_tutorial/latex_output/refman.tex
                    COMMAND ${CMAKE_COMMAND} -E chdir doc/OpenMS_tutorial/latex_output/  pdflatex refman.tex
                    COMMAND ${CMAKE_COMMAND} -E chdir doc/OpenMS_tutorial/latex_output/  makeindex refman.idx
                    COMMAND ${CMAKE_COMMAND} -E chdir doc/OpenMS_tutorial/latex_output/  pdflatex refman.tex
                    COMMAND ${CMAKE_COMMAND} -E chdir doc/OpenMS_tutorial/latex_output/  pdflatex refman.tex
                    COMMAND ${CMAKE_COMMAND} -E copy doc/OpenMS_tutorial/latex_output/refman.pdf doc/OpenMS_tutorial.pdf
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E echo "The OpenMS tutorial in PDF format has been successfully created:"
                    COMMAND ${CMAKE_COMMAND} -E echo "doc/OpenMS_tutorial.pdf"
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
                    COMMAND ${CMAKE_COMMAND} -E echo "Creating TOPP/TOPPView pdf tutorial"
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E remove_directory doc/TOPP_tutorial/latex_output
                    COMMAND ${CMAKE_COMMAND} -E chdir doc/TOPP_tutorial/ doxygen Doxyfile
                    COMMAND ${CMAKE_COMMAND} -E copy doc/TOPP_tutorial/refman_overwrite.tex doc/TOPP_tutorial/latex_output/refman.tex
                    COMMAND ${CMAKE_COMMAND} -E chdir doc/TOPP_tutorial/latex_output/  pdflatex refman.tex
                    COMMAND ${CMAKE_COMMAND} -E chdir doc/TOPP_tutorial/latex_output/  makeindex refman.idx
                    COMMAND ${CMAKE_COMMAND} -E chdir doc/TOPP_tutorial/latex_output/  pdflatex refman.tex
                    COMMAND ${CMAKE_COMMAND} -E chdir doc/TOPP_tutorial/latex_output/  pdflatex refman.tex
                    COMMAND ${CMAKE_COMMAND} -E copy doc/TOPP_tutorial/latex_output/refman.pdf doc/TOPP_tutorial.pdf
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMAND ${CMAKE_COMMAND} -E echo "The OpenMS tutorial in PDF format has been successfully created:"
                    COMMAND ${CMAKE_COMMAND} -E echo "doc/TOPP_tutorial.pdf"
                    COMMAND ${CMAKE_COMMAND} -E echo ""
                    COMMENT "Build the OpenMS/TOPP pdf tutorial"
                    VERBATIM)
else()
  set(DOC_TUTORIALS_ACTIVE FALSE)
  Message(STATUS "Doxygen or Latex missing. Disabling 'doc_tutorials' target!")
endif()