• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Generated documents
2set(APIDOCS
3  macros.rst
4  enums.rst
5  types.rst
6  nghttp2_check_header_name.rst
7  nghttp2_check_header_value.rst
8  nghttp2_hd_deflate_bound.rst
9  nghttp2_hd_deflate_change_table_size.rst
10  nghttp2_hd_deflate_del.rst
11  nghttp2_hd_deflate_get_dynamic_table_size.rst
12  nghttp2_hd_deflate_get_max_dynamic_table_size.rst
13  nghttp2_hd_deflate_get_num_table_entries.rst
14  nghttp2_hd_deflate_get_table_entry.rst
15  nghttp2_hd_deflate_hd.rst
16  nghttp2_hd_deflate_hd_vec.rst
17  nghttp2_hd_deflate_new.rst
18  nghttp2_hd_deflate_new2.rst
19  nghttp2_hd_inflate_change_table_size.rst
20  nghttp2_hd_inflate_del.rst
21  nghttp2_hd_inflate_end_headers.rst
22  nghttp2_hd_inflate_get_dynamic_table_size.rst
23  nghttp2_hd_inflate_get_max_dynamic_table_size.rst
24  nghttp2_hd_inflate_get_num_table_entries.rst
25  nghttp2_hd_inflate_get_table_entry.rst
26  nghttp2_hd_inflate_hd.rst
27  nghttp2_hd_inflate_hd2.rst
28  nghttp2_hd_inflate_new.rst
29  nghttp2_hd_inflate_new2.rst
30  nghttp2_http2_strerror.rst
31  nghttp2_is_fatal.rst
32  nghttp2_nv_compare_name.rst
33  nghttp2_option_del.rst
34  nghttp2_option_new.rst
35  nghttp2_option_set_builtin_recv_extension_type.rst
36  nghttp2_option_set_max_deflate_dynamic_table_size.rst
37  nghttp2_option_set_max_reserved_remote_streams.rst
38  nghttp2_option_set_max_send_header_block_length.rst
39  nghttp2_option_set_no_auto_ping_ack.rst
40  nghttp2_option_set_no_auto_window_update.rst
41  nghttp2_option_set_no_http_messaging.rst
42  nghttp2_option_set_no_recv_client_magic.rst
43  nghttp2_option_set_peer_max_concurrent_streams.rst
44  nghttp2_option_set_user_recv_extension_type.rst
45  nghttp2_option_set_max_settings.rst
46  nghttp2_pack_settings_payload.rst
47  nghttp2_priority_spec_check_default.rst
48  nghttp2_priority_spec_default_init.rst
49  nghttp2_priority_spec_init.rst
50  nghttp2_rcbuf_decref.rst
51  nghttp2_rcbuf_get_buf.rst
52  nghttp2_rcbuf_incref.rst
53  nghttp2_rcbuf_is_static.rst
54  nghttp2_select_next_protocol.rst
55  nghttp2_session_callbacks_del.rst
56  nghttp2_session_callbacks_new.rst
57  nghttp2_session_callbacks_set_before_frame_send_callback.rst
58  nghttp2_session_callbacks_set_data_source_read_length_callback.rst
59  nghttp2_session_callbacks_set_error_callback.rst
60  nghttp2_session_callbacks_set_on_begin_frame_callback.rst
61  nghttp2_session_callbacks_set_on_begin_headers_callback.rst
62  nghttp2_session_callbacks_set_on_data_chunk_recv_callback.rst
63  nghttp2_session_callbacks_set_on_extension_chunk_recv_callback.rst
64  nghttp2_session_callbacks_set_on_frame_not_send_callback.rst
65  nghttp2_session_callbacks_set_on_frame_recv_callback.rst
66  nghttp2_session_callbacks_set_on_frame_send_callback.rst
67  nghttp2_session_callbacks_set_on_header_callback.rst
68  nghttp2_session_callbacks_set_on_header_callback2.rst
69  nghttp2_session_callbacks_set_on_invalid_frame_recv_callback.rst
70  nghttp2_session_callbacks_set_on_invalid_header_callback.rst
71  nghttp2_session_callbacks_set_on_invalid_header_callback2.rst
72  nghttp2_session_callbacks_set_on_stream_close_callback.rst
73  nghttp2_session_callbacks_set_pack_extension_callback.rst
74  nghttp2_session_callbacks_set_recv_callback.rst
75  nghttp2_session_callbacks_set_select_padding_callback.rst
76  nghttp2_session_callbacks_set_send_callback.rst
77  nghttp2_session_callbacks_set_send_data_callback.rst
78  nghttp2_session_callbacks_set_unpack_extension_callback.rst
79  nghttp2_session_change_stream_priority.rst
80  nghttp2_session_check_request_allowed.rst
81  nghttp2_session_check_server_session.rst
82  nghttp2_session_client_new.rst
83  nghttp2_session_client_new2.rst
84  nghttp2_session_client_new3.rst
85  nghttp2_session_consume.rst
86  nghttp2_session_consume_connection.rst
87  nghttp2_session_consume_stream.rst
88  nghttp2_session_create_idle_stream.rst
89  nghttp2_session_del.rst
90  nghttp2_session_find_stream.rst
91  nghttp2_session_get_effective_local_window_size.rst
92  nghttp2_session_get_effective_recv_data_length.rst
93  nghttp2_session_get_hd_deflate_dynamic_table_size.rst
94  nghttp2_session_get_hd_inflate_dynamic_table_size.rst
95  nghttp2_session_get_last_proc_stream_id.rst
96  nghttp2_session_get_local_settings.rst
97  nghttp2_session_get_local_window_size.rst
98  nghttp2_session_get_next_stream_id.rst
99  nghttp2_session_get_outbound_queue_size.rst
100  nghttp2_session_get_remote_settings.rst
101  nghttp2_session_get_remote_window_size.rst
102  nghttp2_session_get_root_stream.rst
103  nghttp2_session_get_stream_effective_local_window_size.rst
104  nghttp2_session_get_stream_effective_recv_data_length.rst
105  nghttp2_session_get_stream_local_close.rst
106  nghttp2_session_get_stream_local_window_size.rst
107  nghttp2_session_get_stream_remote_close.rst
108  nghttp2_session_get_stream_remote_window_size.rst
109  nghttp2_session_get_stream_user_data.rst
110  nghttp2_session_mem_recv.rst
111  nghttp2_session_mem_send.rst
112  nghttp2_session_recv.rst
113  nghttp2_session_resume_data.rst
114  nghttp2_session_send.rst
115  nghttp2_session_server_new.rst
116  nghttp2_session_server_new2.rst
117  nghttp2_session_server_new3.rst
118  nghttp2_session_set_local_window_size.rst
119  nghttp2_session_set_next_stream_id.rst
120  nghttp2_session_set_stream_user_data.rst
121  nghttp2_session_terminate_session.rst
122  nghttp2_session_terminate_session2.rst
123  nghttp2_session_upgrade.rst
124  nghttp2_session_upgrade2.rst
125  nghttp2_session_want_read.rst
126  nghttp2_session_want_write.rst
127  nghttp2_set_debug_vprintf_callback.rst
128  nghttp2_stream_get_first_child.rst
129  nghttp2_stream_get_next_sibling.rst
130  nghttp2_stream_get_parent.rst
131  nghttp2_stream_get_previous_sibling.rst
132  nghttp2_stream_get_state.rst
133  nghttp2_stream_get_sum_dependency_weight.rst
134  nghttp2_stream_get_weight.rst
135  nghttp2_strerror.rst
136  nghttp2_submit_altsvc.rst
137  nghttp2_submit_data.rst
138  nghttp2_submit_extension.rst
139  nghttp2_submit_goaway.rst
140  nghttp2_submit_headers.rst
141  nghttp2_submit_ping.rst
142  nghttp2_submit_priority.rst
143  nghttp2_submit_push_promise.rst
144  nghttp2_submit_request.rst
145  nghttp2_submit_response.rst
146  nghttp2_submit_rst_stream.rst
147  nghttp2_submit_settings.rst
148  nghttp2_submit_shutdown_notice.rst
149  nghttp2_submit_trailer.rst
150  nghttp2_submit_window_update.rst
151  nghttp2_version.rst
152)
153
154set(MAN_PAGES
155  nghttp.1
156  nghttpd.1
157  nghttpx.1
158  h2load.1
159)
160
161# Other .rst files from the source tree that need to be copied
162# XXX move them to sources/ and create .in files?
163set(RST_FILES
164  README.rst
165  programmers-guide.rst
166  nghttp.1.rst
167  nghttpd.1.rst
168  nghttpx.1.rst
169  h2load.1.rst
170)
171
172# XXX unused for now
173set(EXTRA_DIST
174  mkapiref.py
175  ${RST_FILES}
176  ${APIDOCS}
177  sources/index.rst
178  sources/tutorial-client.rst
179  sources/tutorial-server.rst
180  sources/tutorial-hpack.rst
181  sources/nghttpx-howto.rst
182  sources/h2load-howto.rst
183  sources/libnghttp2_asio.rst
184  sources/python-apiref.rst
185  sources/building-android-binary.rst
186  sources/contribute.rst
187  _exts/sphinxcontrib/LICENSE.rubydomain
188  _exts/sphinxcontrib/__init__.py
189  _exts/sphinxcontrib/rubydomain.py
190  _themes/sphinx_rtd_theme/__init__.py
191  _themes/sphinx_rtd_theme/breadcrumbs.html
192  _themes/sphinx_rtd_theme/footer.html
193  _themes/sphinx_rtd_theme/layout.html
194  _themes/sphinx_rtd_theme/layout_old.html
195  _themes/sphinx_rtd_theme/search.html
196  _themes/sphinx_rtd_theme/searchbox.html
197  _themes/sphinx_rtd_theme/static/css/badge_only.css
198  _themes/sphinx_rtd_theme/static/css/theme.css
199  _themes/sphinx_rtd_theme/static/fonts/FontAwesome.otf
200  _themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.eot
201  _themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.svg
202  _themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.ttf
203  _themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff
204  _themes/sphinx_rtd_theme/static/js/theme.js
205  _themes/sphinx_rtd_theme/theme.conf
206  _themes/sphinx_rtd_theme/versions.html
207  ${MAN_PAGES}
208  bash_completion/nghttp
209  bash_completion/nghttpd
210  bash_completion/nghttpx
211  bash_completion/h2load
212)
213
214# Based on Makefile for Sphinx documentation
215
216# You can set these variables from the command line.
217set(SPHINXOPTS)
218set(SPHINXBUILD sphinx-build)
219set(PAPER)
220set(BUILDDIR    manual)
221
222# Internal variables.
223set(PAPEROPT_a4     -D latex_paper_size=a4)
224set(PAPEROPT_letter -D latex_paper_size=letter)
225set(ALLSPHINXOPTS   -d ${BUILDDIR}/doctrees ${PAPEROPT_${PAPER}} ${SPHINXOPTS} .)
226
227# "Please use `make <target>' where <target> is one of"
228# "  html       to make standalone HTML files"
229# "  dirhtml    to make HTML files named index.html in directories"
230# "  singlehtml to make a single large HTML file"
231# "  pickle     to make pickle files"
232# "  json       to make JSON files"
233# "  htmlhelp   to make HTML files and a HTML help project"
234# "  qthelp     to make HTML files and a qthelp project"
235# "  devhelp    to make HTML files and a Devhelp project"
236# "  epub       to make an epub"
237# "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
238# "  latexpdf   to make LaTeX files and run them through pdflatex"
239# "  text       to make text files"
240# "  man        to make manual pages"
241# "  changes    to make an overview of all changed/added/deprecated items"
242# "  linkcheck  to check all external links for integrity"
243# "  doctest    to run all doctests embedded in the documentation (if enabled)"
244
245
246# Copy files for out-of-tree builds
247if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
248  set(RST_BUILD_FILES)
249  foreach(rstfile IN LISTS RST_FILES)
250    set(outfile "${CMAKE_CURRENT_BINARY_DIR}/${rstfile}")
251    add_custom_command(OUTPUT "${outfile}"
252      COMMAND ${CMAKE_COMMAND} -E copy
253              "${CMAKE_CURRENT_SOURCE_DIR}/${rstfile}" "${outfile}"
254      DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${rstfile}"
255    )
256    list(APPEND RST_BUILD_FILES "${outfile}")
257  endforeach()
258else()
259  set(RST_BUILD_FILES "${RST_FILES}")
260endif()
261
262set(apiref_SOURCES
263  ${CMAKE_BINARY_DIR}/lib/includes/nghttp2/nghttp2ver.h
264  ${CMAKE_SOURCE_DIR}/lib/includes/nghttp2/nghttp2.h
265)
266# Generates apiref.rst and other files
267add_custom_command(
268  OUTPUT
269    apiref.rst
270    ${APIDOCS}
271  COMMAND
272    "${PYTHON_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/mkapiref.py"
273    apiref.rst macros.rst enums.rst types.rst .
274    ${apiref_SOURCES}
275  DEPENDS
276    ${RST_BUILD_FILES}
277    ${apiref_SOURCES}
278)
279
280
281
282set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${BUILDDIR}")
283
284# Invokes sphinx-build and prints the given messages when completed
285function(sphinxbuild builder)
286  set(echo_commands)
287  foreach(message IN LISTS ARGN)
288    list(APPEND echo_commands COMMAND ${CMAKE_COMMAND} -E echo "${message}")
289  endforeach()
290  add_custom_target(${builder}
291    COMMAND "${SPHINXBUILD}" -b ${builder} ${ALLSPHINXOPTS} "${BUILDDIR}/${builder}"
292    COMMAND ${CMAKE_COMMAND} -E echo
293    ${echo_commands}
294    VERBATIM
295    DEPENDS apiref.rst
296  )
297endfunction()
298
299foreach(builder html dirhtml singlehtml)
300  sphinxbuild(${builder}
301    "Build finished. The HTML pages are in ${BUILDDIR}/${builder}.")
302endforeach()
303sphinxbuild(pickle  "Build finished; now you can process the pickle files.")
304sphinxbuild(json    "Build finished; now you can process the JSON files.")
305sphinxbuild(htmlhelp
306  "Build finished; now you can run HTML Help Workshop with the"
307  ".hhp project file in ${BUILDDIR}/htmlhelp."
308)
309sphinxbuild(qthelp
310  "Build finished; now you can run \"qcollectiongenerator\" with the"
311  ".qhcp project file in ${BUILDDIR}/qthelp, like this:"
312  "# qcollectiongenerator ${BUILDDIR}/qthelp/nghttp2.qhcp"
313  "To view the help file:"
314  "# assistant -collectionFile ${BUILDDIR}/qthelp/nghttp2.qhc"
315)
316sphinxbuild(devhelp
317  "Build finished."
318  "To view the help file:"
319  "# mkdir -p ~/.local/share/devhelp/nghttp2"
320  "# ln -s ${BUILDDIR}/devhelp ~/.local/share/devhelp/nghttp2"
321  "# devhelp"
322)
323sphinxbuild(epub    "Build finished. The epub file is in ${BUILDDIR}/epub.")
324sphinxbuild(latex
325  "Build finished; the LaTeX files are in ${BUILDDIR}/latex."
326  "Run `make' in that directory to run these through (pdf)latex"
327  "(use `make latexpdf' here to do that automatically)."
328)
329
330# Invoke the Makefile generated by sphinx
331add_custom_target(latexpdf
332  COMMAND ${CMAKE_COMMAND} -E echo "Running LaTeX files through pdflatex..."
333  COMMAND make -C "${BUILDDIR}/latex" all-pdf
334  COMMAND ${CMAKE_COMMAND} -E echo "pdflatex finished; the PDF files are in ${BUILDDIR}/latex."
335  DEPENDS latex
336)
337
338sphinxbuild(text    "Build finished. The text files are in ${BUILDDIR}/text.")
339sphinxbuild(man     "Build finished. The manual pages are in ${BUILDDIR}/man.")
340sphinxbuild(changes "The overview file is in ${BUILDDIR}/changes.")
341sphinxbuild(linkcheck
342  "Link check complete; look for any errors in the above output"
343  "or in ${BUILDDIR}/linkcheck/output.txt."
344)
345sphinxbuild(doctest
346  "Testing of doctests in the sources finished, look at the"
347  "results in ${BUILDDIR}/doctest/output.txt."
348)
349
350foreach(_man_page IN LISTS MAN_PAGES)
351  install(FILES ${_man_page}
352    DESTINATION "${CMAKE_INSTALL_MANDIR}/man1"
353  )
354endforeach()
355