TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags
[wireshark-sm.git] / doc / CMakeLists.txt
blob5c0af7ab7b49ab864cda07aa138a3a6a5ef3d3e9
1 # CMakeLists.txt
3 # Wireshark - Network traffic analyzer
4 # By Gerald Combs <gerald@wireshark.org>
5 # Copyright 1998 Gerald Combs
7 # SPDX-License-Identifier: GPL-2.0-or-later
10 find_package( Asciidoctor 1.5 )
12 function(set_doc_target_properties _target)
13         set_target_properties(${_target} PROPERTIES
14                 FOLDER "Documentation"
15                 EXCLUDE_FROM_DEFAULT_BUILD True
16                 )
17 endfunction()
19 set(MAN1_SOURCE_FILES)
20 set(MAN4_SOURCE_FILES)
21 set(MAN1_INSTALL_FILES)
22 set(MAN4_INSTALL_FILES)
23 set(HTML_INSTALL_FILES)
25 macro (ADD_MAN_PAGE _page_name _man_section)
26         if(ASCIIDOCTOR_FOUND)
27                 list(APPEND HTML_INSTALL_FILES ${CMAKE_CURRENT_BINARY_DIR}/man_pages/${_page_name}.html)
29                 if (${_man_section} EQUAL 1)
30                         list(APPEND MAN1_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/man_pages/${_page_name}.adoc)
31                         list(APPEND MAN1_INSTALL_FILES ${CMAKE_CURRENT_BINARY_DIR}/man_pages/${_page_name}.${_man_section})
32                 elseif (${_man_section} EQUAL 4)
33                         list(APPEND MAN4_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/man_pages/${_page_name}.adoc)
34                         list(APPEND MAN4_INSTALL_FILES ${CMAKE_CURRENT_BINARY_DIR}/man_pages/${_page_name}.${_man_section})
35                 else()
36                         message(FATAL_ERROR "Unsupported manual page section ${_man_section} for ${_page_name}")
37                 endif()
38         endif()
39 endmacro()
41 ADD_MAN_PAGE(wireshark   1)
42 ADD_MAN_PAGE(tshark      1)
43 ADD_MAN_PAGE(stratoshark 1)
45 ADD_MAN_PAGE(androiddump 1)
46 ADD_MAN_PAGE(capinfos    1)
47 ADD_MAN_PAGE(captype     1)
48 ADD_MAN_PAGE(ciscodump   1)
49 ADD_MAN_PAGE(dumpcap     1)
50 ADD_MAN_PAGE(editcap     1)
51 ADD_MAN_PAGE(mergecap    1)
52 ADD_MAN_PAGE(randpkt     1)
53 ADD_MAN_PAGE(randpktdump 1)
54 ADD_MAN_PAGE(etwdump     1)
55 ADD_MAN_PAGE(rawshark    1)
56 ADD_MAN_PAGE(reordercap  1)
57 ADD_MAN_PAGE(sshdig      1)
58 ADD_MAN_PAGE(sshdump     1)
59 ADD_MAN_PAGE(text2pcap   1)
60 ADD_MAN_PAGE(falcodump   1)
61 ADD_MAN_PAGE(udpdump     1)
62 ADD_MAN_PAGE(wifidump    1)
64 ADD_MAN_PAGE(extcap           4)
65 ADD_MAN_PAGE(wireshark-filter 4)
67 if(BUILD_dpauxmon AND HAVE_LIBNL3)
68         ADD_MAN_PAGE(dpauxmon    1)
69 endif()
71 if(BUILD_sdjournal AND SYSTEMD_FOUND)
72         ADD_MAN_PAGE(sdjournal   1)
73 endif()
75 if(MAXMINDDB_FOUND)
76         ADD_MAN_PAGE(mmdbresolve 1)
77 endif()
79 if (BUILD_corbaidl2wrs)
80         ADD_MAN_PAGE(idl2wrs     1)
81 endif()
83 if (BUILD_xxx2deb)
84         ADD_MAN_PAGE(asn2deb     1)
85         ADD_MAN_PAGE(idl2deb     1)
86 endif()
88 set(WIRESHARK_BUNDLE_RESOURCE_SHARE_MAN1_FILES ${MAN1_INSTALL_FILES} PARENT_SCOPE)
89 set(WIRESHARK_BUNDLE_RESOURCE_SHARE_MAN4_FILES ${MAN4_INSTALL_FILES} PARENT_SCOPE)
90 # XXX We need a Stratoshark-specific man page list, which might overlap with Wireshark's.
91 # Just install everything for now.
92 set(STRATOSHARK_BUNDLE_RESOURCE_SHARE_MAN1_FILES ${WIRESHARK_BUNDLE_RESOURCE_SHARE_MAN1_FILES} PARENT_SCOPE)
93 set(STRATOSHARK_BUNDLE_RESOURCE_SHARE_MAN4_FILES ${WIRESHARK_BUNDLE_RESOURCE_SHARE_MAN4_FILES} PARENT_SCOPE)
95 set(MAN_INCLUDES man_pages/diagnostic-options.adoc man_pages/dissection-options.adoc man_pages/files.adoc)
97 if(ASCIIDOCTOR_FOUND)
98         ASCIIDOCTOR2ROFFMAN(1 ${MAN1_SOURCE_FILES})
99         ASCIIDOCTOR2ROFFMAN(4 ${MAN4_SOURCE_FILES})
100         ASCIIDOCTOR2HTMLMAN(${MAN1_SOURCE_FILES} ${MAN4_SOURCE_FILES})
102         add_custom_target(manpages
103                 DEPENDS
104                         ${MAN1_INSTALL_FILES}
105                         ${MAN4_INSTALL_FILES}
106         )
107         set_target_properties(manpages PROPERTIES FOLDER "Documentation")
108 endif()
110 if(ASCIIDOCTOR_FOUND)
111         ASCIIDOCTOR2HTML(release-notes.adoc)
112         ASCIIDOCTOR2TXT(release-notes.adoc)
114         add_custom_target(release_notes_html
115                 DEPENDS
116                         ${CMAKE_CURRENT_BINARY_DIR}/release-notes.html
117         )
118         set_target_properties(release_notes_html PROPERTIES FOLDER "Documentation")
120         add_custom_target(release_notes_txt
121                 DEPENDS
122                         ${CMAKE_CURRENT_BINARY_DIR}/release-notes.txt
123                         release_notes_html
124         )
125         set_target_properties(release_notes_txt PROPERTIES FOLDER "Documentation")
127         add_custom_target(release_notes
128                 DEPENDS
129                         release_notes_html
130                         release_notes_txt
131         )
132         set_target_properties(release_notes PROPERTIES FOLDER "Documentation")
134         ASCIIDOCTOR2HTML(faq.adoc)
135         add_custom_target(faq_html DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/faq.html)
136         set_doc_target_properties(faq_html)
138         add_custom_target(faq DEPENDS faq_html)
139         set_doc_target_properties(faq)
140 endif()
143 add_custom_target(docs
144         DEPENDS
145                 ${HTML_INSTALL_FILES}
147 set_target_properties(docs PROPERTIES FOLDER "Documentation")
149 if(ASCIIDOCTOR_FOUND)
150         add_dependencies(docs manpages release_notes_html)
152         install(
153                 FILES
154                         ${MAN1_INSTALL_FILES}
155                 DESTINATION
156                         ${CMAKE_INSTALL_MANDIR}/man1
157         )
159         install(
160                 FILES
161                         ${MAN4_INSTALL_FILES}
162                 DESTINATION
163                         ${CMAKE_INSTALL_MANDIR}/man4
164         )
167         install(
168                 FILES
169                         ${HTML_INSTALL_FILES}
170                         ${CMAKE_CURRENT_BINARY_DIR}/release-notes.html
171                 DESTINATION
172                         ${CMAKE_INSTALL_DOCDIR}
173                 COMPONENT "ReleaseNotes"
174         )
175 endif()
178 # Wireshark User's and Developer's Guides
181 set(COMMON_GUIDE_FILES
182         common_src/gpl_appendix.adoc
183         common_src/typographic_conventions.adoc
186 set(WSUG_TITLE "Wireshark User's Guide")
188 set(WSUG_FILES
189         wsug_src/wsug_advanced.adoc
190         wsug_src/wsug_build_install.adoc
191         wsug_src/wsug_capture.adoc
192         wsug_src/wsug_customize.adoc
193         wsug_src/wsug_files.adoc
194         wsug_src/wsug_howitworks.adoc
195         wsug_src/wsug_introduction.adoc
196         wsug_src/wsug_io.adoc
197         wsug_src/wsug_mate.adoc
198         wsug_src/wsug_messages.adoc
199         wsug_src/wsug_preface.adoc
200         wsug_src/wsug_protocols.adoc
201         wsug_src/wsug_statistics.adoc
202         wsug_src/wsug_telephony.adoc
203         wsug_src/wsug_tools.adoc
204         wsug_src/wsug_troubleshoot.adoc
205         wsug_src/wsug_use.adoc
206         wsug_src/wsug_work.adoc
207         wsug_src/capinfos-h.txt
208         wsug_src/dumpcap-h.txt
209         wsug_src/editcap-F.txt
210         wsug_src/editcap-T.txt
211         wsug_src/editcap-h.txt
212         wsug_src/mergecap-h.txt
213         wsug_src/rawshark-h.txt
214         wsug_src/reordercap-h.txt
215         wsug_src/text2pcap-h.txt
216         wsug_src/tshark-h.txt
217         wsug_src/wireshark-h.txt
218         ${COMMON_GUIDE_FILES}
221 # Note: Images should be minimized using tools/compress-pngs.py.
222 set(WSUG_GRAPHICS
223         wsug_src/images/caution.svg
224         wsug_src/images/important.svg
225         wsug_src/images/note.svg
226         wsug_src/images/related-ack.png
227         wsug_src/images/related-current.png
228         wsug_src/images/related-dup-ack.png
229         wsug_src/images/related-first.png
230         wsug_src/images/related-last.png
231         wsug_src/images/related-other.png
232         wsug_src/images/related-request.png
233         wsug_src/images/related-response.png
234         wsug_src/images/related-segment.png
235         wsug_src/images/tip.svg
236         wsug_src/images/toolbar/document-open.png
237         wsug_src/images/toolbar/edit-find.png
238         wsug_src/images/toolbar/filter-toolbar-add.png
239         wsug_src/images/toolbar/filter-toolbar-apply.png
240         wsug_src/images/toolbar/filter-toolbar-bookmark.png
241         wsug_src/images/toolbar/filter-toolbar-clear.png
242         wsug_src/images/toolbar/filter-toolbar-input.png
243         wsug_src/images/toolbar/filter-toolbar-recent.png
244         wsug_src/images/toolbar/go-first.png
245         wsug_src/images/toolbar/go-jump.png
246         wsug_src/images/toolbar/go-last.png
247         wsug_src/images/toolbar/go-next.png
248         wsug_src/images/toolbar/go-previous.png
249         wsug_src/images/toolbar/x-capture-file-close.png
250         wsug_src/images/toolbar/x-capture-file-reload.png
251         wsug_src/images/toolbar/x-capture-file-save.png
252         wsug_src/images/toolbar/x-capture-options.png
253         wsug_src/images/toolbar/x-capture-restart.png
254         wsug_src/images/toolbar/x-capture-start.png
255         wsug_src/images/toolbar/x-capture-stop.png
256         wsug_src/images/toolbar/x-colorize-packets.png
257         wsug_src/images/toolbar/x-resize-columns.png
258         wsug_src/images/toolbar/x-stay-last.png
259         wsug_src/images/toolbar/zoom-in.png
260         wsug_src/images/toolbar/zoom-original.png
261         wsug_src/images/toolbar/zoom-out.png
262         wsug_src/images/warning.svg
263         wsug_src/images/ws-about-codecs.png
264         wsug_src/images/ws-analyze-menu.png
265         wsug_src/images/ws-bytes-pane-popup-menu.png
266         wsug_src/images/ws-bytes-pane-tabs.png
267         wsug_src/images/ws-bytes-pane.png
268         wsug_src/images/ws-capture-file-properties.png
269         wsug_src/images/ws-capture-info.png
270         wsug_src/images/ws-capture-interfaces-main-macos.png
271         wsug_src/images/ws-capture-interfaces-main-win32.png
272         wsug_src/images/ws-capture-menu.png
273         wsug_src/images/ws-capture-options-compile-selected-bpfs.png
274         wsug_src/images/ws-capture-options-options.png
275         wsug_src/images/ws-capture-options-output.png
276         wsug_src/images/ws-capture-options-output.png
277         wsug_src/images/ws-capture-options.png
278         wsug_src/images/ws-choose-color-rule.png
279         wsug_src/images/ws-coloring-fields.png
280         wsug_src/images/ws-coloring-rules-dialog.png
281         wsug_src/images/ws-column-header-popup-menu.png
282         wsug_src/images/ws-decode-as.png
283         wsug_src/images/ws-details-pane-popup-menu.png
284         wsug_src/images/ws-details-pane.png
285         wsug_src/images/ws-diagram-pane-popup-menu.png
286         wsug_src/images/ws-diagram-pane.png
287         wsug_src/images/ws-display-filter-tcp.png # GTK+
288         wsug_src/images/ws-edit-menu.png
289         wsug_src/images/ws-enabled-protocols.png
290         wsug_src/images/ws-expert-colored-tree.png
291         wsug_src/images/ws-expert-column.png
292         wsug_src/images/ws-expert-information.png
293         wsug_src/images/ws-export-objects.png
294         wsug_src/images/ws-export-packet-dissections.png
295         wsug_src/images/ws-export-selected.png
296         wsug_src/images/ws-export-specified-packets.png
297         wsug_src/images/ws-file-import.png
298         wsug_src/images/ws-file-menu.png
299         wsug_src/images/ws-file-set-dialog.png # GTK+
300         wsug_src/images/ws-filter-add-expression.png # GTK+
301         wsug_src/images/ws-filter-toolbar.png
302         wsug_src/images/ws-filters.png # GTK+
303         wsug_src/images/ws-find-packet.png
304         wsug_src/images/ws-follow-http2-stream.png
305         wsug_src/images/ws-follow-sip-stream.png
306         wsug_src/images/ws-follow-stream.png
307         wsug_src/images/ws-go-menu.png
308         wsug_src/images/ws-goto-packet.png
309         wsug_src/images/ws-help-menu.png
310         wsug_src/images/ws-list-pane.png # Outdated
311         wsug_src/images/ws-main-toolbar.png
312         wsug_src/images/ws-main.png
313         wsug_src/images/ws-manage-interfaces.png
314         wsug_src/images/ws-mate-analysis.png
315         wsug_src/images/ws-mate-dns_pane.png
316         wsug_src/images/ws-mate-dns_pdu.png
317         wsug_src/images/ws-mate-ftp_over_gre.png
318         wsug_src/images/ws-mate-gop_analysis.png
319         wsug_src/images/ws-mate-isup_over_mtp3_over_ip.png
320         wsug_src/images/ws-mate-mmse_over_http.png
321         wsug_src/images/ws-mate-pdu_analysis.png
322         wsug_src/images/ws-mate-tcp-output.png
323         wsug_src/images/ws-mate-transform.png
324         wsug_src/images/ws-menu.png
325         wsug_src/images/ws-merge-qt5.png
326         wsug_src/images/ws-merge-win32.png
327         wsug_src/images/ws-open-qt5.png
328         wsug_src/images/ws-open-win32.png
329         wsug_src/images/ws-packet-format.png
330         wsug_src/images/ws-packet-pane-popup-menu.png
331         wsug_src/images/ws-packet-range.png
332         wsug_src/images/ws-packet-selected.png
333         wsug_src/images/ws-packet-sep-win.png
334         wsug_src/images/ws-pref-advanced.png
335         wsug_src/images/ws-pref-appearance-columns.png
336         wsug_src/images/ws-pref-appearance-fonts-and-colors.png
337         wsug_src/images/ws-pref-appearance-layout.png
338         wsug_src/images/ws-pref-appearance.png
339         wsug_src/images/ws-pref-capture.png
340         wsug_src/images/ws-pref-expert.png
341         wsug_src/images/ws-pref-filter-buttons.png
342         wsug_src/images/ws-pref-name-resolution.png
343         wsug_src/images/ws-pref-protocols.png
344         wsug_src/images/ws-pref-rsa-keys.png
345         wsug_src/images/ws-pref-statistics.png
346         wsug_src/images/ws-print.png
347         wsug_src/images/ws-save-as-qt5.png
348         wsug_src/images/ws-save-as-win32.png
349         wsug_src/images/ws-statistics-menu.png
350         wsug_src/images/ws-stats-conversations.png
351         wsug_src/images/ws-stats-endpoints.png
352         wsug_src/images/ws-stats-hierarchy.png
353         wsug_src/images/ws-stats-iographs.png
354         wsug_src/images/ws-stats-lte-mac-traffic.png
355         wsug_src/images/ws-stats-lte-rlc-traffic.png
356         wsug_src/images/ws-stats-packet-lengths.png
357         wsug_src/images/ws-stats-srt-smb2.png
358         wsug_src/images/ws-stats-wlan-traffic.png # GTK+
359         wsug_src/images/ws-statusbar-empty.png
360         wsug_src/images/ws-statusbar-filter.png
361         wsug_src/images/ws-statusbar-loaded.png
362         wsug_src/images/ws-statusbar-profile.png
363         wsug_src/images/ws-statusbar-selected.png
364         wsug_src/images/ws-tcp-analysis.png
365         wsug_src/images/ws-tel-playlist.png
366         wsug_src/images/ws-tel-rtp-player_1.png
367         wsug_src/images/ws-tel-rtp-player_2.png
368         wsug_src/images/ws-tel-rtp-player_3.png
369         wsug_src/images/ws-tel-rtp-player_button.png
370         wsug_src/images/ws-tel-rtp-streams.png
371         wsug_src/images/ws-tel-rtpstream-analysis_1.png
372         wsug_src/images/ws-tel-rtpstream-analysis_2.png
373         wsug_src/images/ws-tel-rtpstream-analysis_3.png
374         wsug_src/images/ws-tel-seq-dialog.png
375         wsug_src/images/ws-tel-voip-calls.png
376         wsug_src/images/ws-telephony-menu.png
377         wsug_src/images/ws-time-reference.png # GTK+
378         wsug_src/images/ws-tools-menu.png
379         wsug_src/images/ws-view-menu.png
382 set(WSDG_TITLE "Wireshark Developer's Guide")
384 set(WSDG_FILES
385         wsdg_src/wsdg_asn2wrs.adoc
386         wsdg_src/wsdg_build_intro.adoc
387         wsdg_src/wsdg_capture.adoc
388         wsdg_src/wsdg_dissection.adoc
389         wsdg_src/wsdg_env_intro.adoc
390         wsdg_src/wsdg_libraries.adoc
391         wsdg_src/wsdg_lua_support.adoc
392         wsdg_src/wsdg_preface.adoc
393         wsdg_src/wsdg_quick_setup.adoc
394         wsdg_src/wsdg_sources.adoc
395         wsdg_src/wsdg_tests.adoc
396         wsdg_src/wsdg_tools.adoc
397         wsdg_src/wsdg_userinterface.adoc
398         wsdg_src/wsdg_works.adoc
399         ${COMMON_GUIDE_FILES}
402 set(WSDG_GRAPHICS
403         wsdg_src/images/caution.svg
404         wsdg_src/images/git-triangular-workflow.gv
405         wsdg_src/images/git-triangular-workflow.svg
406         wsdg_src/images/important.svg
407         wsdg_src/images/note.svg
408         wsdg_src/images/tip.svg
409         wsdg_src/images/warning.svg
410         wsdg_src/images/ws-capture_internals.dia
411         wsdg_src/images/ws-capture_internals.png
412         wsdg_src/images/ws-capture-sync.dia
413         wsdg_src/images/ws-capture-sync.png
414         wsdg_src/images/ws-capture-sync.png
415         wsdg_src/images/ws-function-blocks.dia
416         wsdg_src/images/ws-function-blocks.svg
417         wsdg_src/images/ws-logo.png
420 set(WSUG_SOURCE
421         ${WSUG_FILES}
422         ${WSUG_GRAPHICS}
425 set(WSDG_SOURCE
426         ${WSDG_FILES}
427         ${WSDG_GRAPHICS}
430 # Note: file order here MATTERS!
431 # new WSLUA_MODULE files must come right before any WSLUA_CONTINUE_MODULE
432 # files for the same module
433 set(WSLUA_MODULES
434         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_dumper.c
435         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_field.c
436         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_gui.c
437         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_int64.c
438         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_listener.c
439         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_pinfo.c
440         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_address.c
441         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_column.c
442         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_nstime.c
443         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_proto.c
444         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_dissector.c
445         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_pref.c
446         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_proto_expert.c
447         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_proto_field.c
448         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_tree.c
449         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_tvb.c
450         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_byte_array.c
451         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_file.c
452         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_file_handler.c
453         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_frame_info.c
454         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_capture_info.c
455         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_dir.c
456         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_wtap.c
457         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_utility.c
458         ${CMAKE_SOURCE_DIR}/epan/wslua/wslua_struct.c
461 # Empty file to trigger wsluarm generation.
462 ADD_CUSTOM_COMMAND(
463         OUTPUT
464                 wsluarm
465         COMMAND ${CMAKE_COMMAND} -E make_directory wsluarm_src
466         COMMAND ${Python3_EXECUTABLE}
467                 ${CMAKE_SOURCE_DIR}/tools/make-wsluarm.py
468                 --output-directory wsluarm_src
469                 ${WSLUA_MODULES}
470         COMMAND ${CMAKE_COMMAND} -E touch
471                 wsluarm
472         DEPENDS
473                 ${CMAKE_SOURCE_DIR}/tools/make-wsluarm.py
474                 ${WSLUA_MODULES}
477 set( WSDG_BUILT_DEPS wsluarm )
479 set( ASCIIDOC_CONF_FILES
480         ${CMAKE_CURRENT_SOURCE_DIR}/attributes.adoc
481         # XXX Add macros
484 if(ASCIIDOCTOR_FOUND)
485         # Generate the DocBook sources of user and developer guides
487         ASCIIDOCTOR2DOCBOOK(wsug_src/user-guide.adoc ${ASCIIDOC_CONF_FILES} ${WSUG_SOURCE} ${WSUG_BUILT_DEPS})
488         add_custom_target(user_guide_docbook DEPENDS generate_user-guide.xml)
489         set_doc_target_properties(user_guide_docbook)
490         set_target_properties(user_guide_docbook PROPERTIES EXCLUDE_FROM_ALL True)
492         ASCIIDOCTOR2DOCBOOK(wsdg_src/developer-guide.adoc ${ASCIIDOC_CONF_FILES} ${WSDG_SOURCE} ${WSDG_BUILT_DEPS})
493         add_custom_target(developer_guide_docbook DEPENDS generate_developer-guide.xml)
494         set_doc_target_properties(developer_guide_docbook)
495         set_target_properties(developer_guide_docbook PROPERTIES EXCLUDE_FROM_ALL True)
497         # Top-level guide targets.
499         add_custom_target(user_guides DEPENDS user_guide_docbook)
500         set_doc_target_properties(user_guides)
501         set_target_properties(user_guides PROPERTIES EXCLUDE_FROM_ALL True)
503         add_custom_target(developer_guides DEPENDS developer_guide_docbook)
504         set_doc_target_properties(developer_guides)
505         set_target_properties(developer_guides PROPERTIES EXCLUDE_FROM_ALL True)
507         add_custom_target(all_guides DEPENDS user_guides developer_guides )
508         set_doc_target_properties(all_guides)
509         set_target_properties(all_guides PROPERTIES EXCLUDE_FROM_ALL True)
510 endif()
512 # User's Guide chain.
513 if(ASCIIDOCTOR_FOUND AND XSLTPROC_EXECUTABLE)
514         XML2HTML(
515                 user_guide
516                 wsug
517                 single-page
518                 user-guide.xml
519                 WSUG_GRAPHICS
520         )
522         XML2HTML(
523                 user_guide
524                 wsug
525                 chunked
526                 user-guide.xml
527                 WSUG_GRAPHICS
528         )
529         add_custom_target(user_guide_html
530                 DEPENDS
531                         wsug_html/index.html
532                         wsug_html_chunked/index.html
533         )
534         set_doc_target_properties(user_guide_html)
535         set_target_properties(user_guide_html PROPERTIES EXCLUDE_FROM_ALL True)
536         add_dependencies(user_guides user_guide_html)
537         # Copy the WSUG to the build directory so that when running
538         # from the build directory ui/help_url.c will find the local file.
539         # It expects the WSUG in a different directory on Windows.
540         if(WIN32)
541                 set(WSUG_DIR "${DATAFILE_DIR}/${WSUG_TITLE}")
542         else()
543                 set(WSUG_DIR "${DATAFILE_DIR}/wsug_html_chunked")
544         endif()
545         # CMake 3.26 has copy_directory_if_different
546         add_custom_command(
547                 TARGET user_guide_html POST_BUILD
548                 COMMAND ${CMAKE_COMMAND} -E copy_directory
549                         "${CMAKE_CURRENT_BINARY_DIR}/wsug_html_chunked" "${WSUG_DIR}"
550                 VERBATIM
551         )
552 endif()
554 if(ASCIIDOCTOR_FOUND AND ASCIIDOCTOR_PDF_EXECUTABLE)
555         ASCIIDOCTOR2PDF(${WSUG_TITLE} wsug_src/user-guide.adoc ${WSUG_SOURCE} ${WSUG_BUILT_DEPS})
557         add_custom_target(user_guide_pdf
558                 DEPENDS
559                         "${WSUG_TITLE}.pdf"
560         )
561         set_doc_target_properties(user_guide_pdf)
562         set_target_properties(user_guide_pdf PROPERTIES EXCLUDE_FROM_ALL True)
563         add_dependencies(user_guides user_guide_pdf)
564 endif()
566 if(ASCIIDOCTOR_FOUND AND ASCIIDOCTOR_EPUB_EXECUTABLE)
567         ASCIIDOCTOR2EPUB(${WSUG_TITLE} wsug_src/user-guide.adoc ${WSUG_SOURCE} ${WSUG_BUILT_DEPS})
569         add_custom_target(user_guide_epub
570                 DEPENDS
571                         "${WSUG_TITLE}.epub"
572         )
573         set_doc_target_properties(user_guide_epub)
574         set_target_properties(user_guide_epub PROPERTIES EXCLUDE_FROM_ALL True)
575         add_dependencies(user_guides user_guide_epub)
576 endif()
578 # Developer's Guide chain.
579 if(ASCIIDOCTOR_FOUND AND XSLTPROC_EXECUTABLE)
580         XML2HTML(
581                 developer_guide
582                 wsdg
583                 single-page
584                 developer-guide.xml
585                 WSDG_GRAPHICS
586         )
588         XML2HTML(
589                 developer_guide
590                 wsdg
591                 chunked
592                 developer-guide.xml
593                 WSDG_GRAPHICS
594         )
595         add_custom_target(developer_guide_html
596                 DEPENDS
597                         wsdg_html/index.html
598                         wsdg_html_chunked/index.html
599         )
600         set_doc_target_properties(developer_guide_html)
601         set_target_properties(developer_guide_html PROPERTIES EXCLUDE_FROM_ALL True)
602         add_dependencies(developer_guides developer_guide_html)
603 endif()
605 if(ASCIIDOCTOR_FOUND AND ASCIIDOCTOR_PDF_EXECUTABLE)
606         ASCIIDOCTOR2PDF(${WSDG_TITLE} wsdg_src/developer-guide.adoc ${WSDG_SOURCE} ${WSDG_BUILT_DEPS})
608         add_custom_target(developer_guide_pdf
609                 DEPENDS
610                         "${WSDG_TITLE}.pdf"
611         )
612         set_doc_target_properties(developer_guide_pdf)
613         set_target_properties(developer_guide_pdf PROPERTIES EXCLUDE_FROM_ALL True)
614         add_dependencies(developer_guides developer_guide_pdf)
615 endif()
617 if(ASCIIDOCTOR_FOUND AND ASCIIDOCTOR_EPUB_EXECUTABLE)
618         ASCIIDOCTOR2EPUB(${WSDG_TITLE} wsdg_src/developer-guide.adoc ${WSDG_SOURCE} ${WSDG_BUILT_DEPS})
620         add_custom_target(developer_guide_epub
621                 DEPENDS
622                         "${WSDG_TITLE}.epub"
623         )
624         set_doc_target_properties(developer_guide_epub)
625         set_target_properties(developer_guide_epub PROPERTIES EXCLUDE_FROM_ALL True)
626         add_dependencies(developer_guides developer_guide_epub)
627 endif()
630 # Editor modelines  -  https://www.wireshark.org/tools/modelines.html
632 # Local variables:
633 # c-basic-offset: 8
634 # tab-width: 8
635 # indent-tabs-mode: t
636 # End:
638 # vi: set shiftwidth=8 tabstop=8 noexpandtab:
639 # :indentSize=8:tabSize=8:noTabs=false: