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