| 
									
										
										
										
											2023-11-21 21:31:16 +02:00
										 |  |  | fs = import('fs')
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-30 19:46:51 +02:00
										 |  |  | doxyfile_conf = configuration_data()
 | 
					
						
							|  |  |  | doxyfile_conf.set('PACKAGE_NAME', meson.project_name())
 | 
					
						
							|  |  |  | doxyfile_conf.set('PACKAGE_VERSION', meson.project_version())
 | 
					
						
							| 
									
										
										
										
											2021-12-28 16:35:20 +01:00
										 |  |  | doxyfile_conf.set('top_srcdir', meson.project_source_root())
 | 
					
						
							|  |  |  | doxyfile_conf.set('top_builddir', meson.project_build_root())
 | 
					
						
							| 
									
										
										
										
											2023-01-14 22:02:13 +01:00
										 |  |  | doxyfile_conf.set('output_directory', meson.current_build_dir())
 | 
					
						
							| 
									
										
										
										
											2017-05-30 19:46:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-03-10 22:25:42 +02:00
										 |  |  | doc_prefix_value = get_option('doc-prefix-value')
 | 
					
						
							|  |  |  | doc_sysconfdir_value = get_option('doc-sysconfdir-value')
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if doc_prefix_value == '' and doc_sysconfdir_value == ''
 | 
					
						
							|  |  |  |    doc_spa_plugindir = spa_plugindir
 | 
					
						
							|  |  |  |    doc_pipewire_configdir = pipewire_configdir
 | 
					
						
							|  |  |  |    doc_pipewire_confdatadir = pipewire_confdatadir
 | 
					
						
							|  |  |  | else
 | 
					
						
							|  |  |  |    if doc_prefix_value == ''
 | 
					
						
							|  |  |  |      doc_prefix_value = get_option('prefix')
 | 
					
						
							|  |  |  |    endif
 | 
					
						
							|  |  |  |    if doc_sysconfdir_value == ''
 | 
					
						
							|  |  |  |      doc_sysconfdir_value = get_option('sysconfdir')
 | 
					
						
							|  |  |  |    endif
 | 
					
						
							|  |  |  |    doc_spa_plugindir = doc_prefix_value / get_option('libdir') / spa_name
 | 
					
						
							|  |  |  |    doc_pipewire_configdir = doc_prefix_value / doc_sysconfdir_value / 'pipewire'
 | 
					
						
							|  |  |  |    doc_pipewire_confdatadir = doc_prefix_value / get_option('datadir') / 'pipewire'
 | 
					
						
							|  |  |  | endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 21:31:16 +02:00
										 |  |  | doxygen_env = environment()
 | 
					
						
							|  |  |  | doxygen_env.set('PACKAGE_NAME', meson.project_name())
 | 
					
						
							|  |  |  | doxygen_env.set('PACKAGE_VERSION', meson.project_version())
 | 
					
						
							|  |  |  | doxygen_env.set('PACKAGE_URL', 'https://pipewire.org')
 | 
					
						
							|  |  |  | doxygen_env.set('PACKAGE_BUGREPORT', 'https://gitlab.freedesktop.org/pipewire/pipewire/issues')
 | 
					
						
							| 
									
										
										
										
											2024-03-10 22:25:42 +02:00
										 |  |  | doxygen_env.set('PIPEWIRE_CONFIG_DIR', doc_pipewire_configdir)
 | 
					
						
							|  |  |  | doxygen_env.set('PIPEWIRE_CONFDATADIR', doc_pipewire_confdatadir)
 | 
					
						
							|  |  |  | doxygen_env.set('SPA_PLUGINDIR', doc_spa_plugindir)
 | 
					
						
							| 
									
										
										
										
											2023-12-09 18:34:56 +02:00
										 |  |  | doxygen_env.set('BUILD_DIR', meson.current_build_dir())
 | 
					
						
							| 
									
										
										
										
											2023-11-21 21:31:16 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-29 11:17:03 +03:00
										 |  |  | dot_found = find_program('dot', required: false).found()
 | 
					
						
							|  |  |  | summary({'dot (used with doxygen)': dot_found}, bool_yn: true, section: 'Optional programs')
 | 
					
						
							|  |  |  | if dot_found
 | 
					
						
							| 
									
										
										
										
											2017-05-30 19:46:51 +02:00
										 |  |  |   doxyfile_conf.set('HAVE_DOT', 'YES')
 | 
					
						
							|  |  |  | else
 | 
					
						
							|  |  |  |   doxyfile_conf.set('HAVE_DOT', 'NO')
 | 
					
						
							|  |  |  | endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-25 19:55:06 +10:00
										 |  |  | # Note: order here is how doxygen will expose the pages in the sidebar
 | 
					
						
							| 
									
										
										
										
											2023-11-18 15:13:05 +02:00
										 |  |  | # tree.dox should be first to determine the ordering.
 | 
					
						
							| 
									
										
										
										
											2021-05-07 09:09:45 +10:00
										 |  |  | extra_docs = [
 | 
					
						
							| 
									
										
										
										
											2023-11-18 15:13:05 +02:00
										 |  |  |   'tree.dox',
 | 
					
						
							|  |  |  |   'dox/index.dox',
 | 
					
						
							|  |  |  |   'dox/overview.dox',
 | 
					
						
							|  |  |  |   'dox/modules.dox',
 | 
					
						
							| 
									
										
										
										
											2023-11-19 23:08:09 +02:00
										 |  |  |   'dox/pulse-modules.dox',
 | 
					
						
							| 
									
										
										
										
											2023-11-21 21:31:16 +02:00
										 |  |  |   'dox/programs/index.md',
 | 
					
						
							| 
									
										
										
										
											2024-02-04 12:14:31 +02:00
										 |  |  |   'dox/config/index.md',
 | 
					
						
							| 
									
										
										
										
											2024-07-28 18:21:25 +03:00
										 |  |  |   'dox/config/xref.md',
 | 
					
						
							| 
									
										
										
										
											2023-11-18 15:13:05 +02:00
										 |  |  |   'dox/internals/index.dox',
 | 
					
						
							|  |  |  |   'dox/internals/design.dox',
 | 
					
						
							|  |  |  |   'dox/internals/access.dox',
 | 
					
						
							| 
									
										
										
										
											2025-05-13 15:01:00 +02:00
										 |  |  |   'dox/internals/latency.dox',
 | 
					
						
							| 
									
										
										
										
											2025-05-14 11:28:16 +02:00
										 |  |  |   'dox/internals/tag.dox',
 | 
					
						
							| 
									
										
										
										
											2023-11-18 15:13:05 +02:00
										 |  |  |   'dox/internals/midi.dox',
 | 
					
						
							|  |  |  |   'dox/internals/portal.dox',
 | 
					
						
							|  |  |  |   'dox/internals/daemon.dox',
 | 
					
						
							|  |  |  |   'dox/internals/library.dox',
 | 
					
						
							|  |  |  |   'dox/internals/session-manager.dox',
 | 
					
						
							|  |  |  |   'dox/internals/objects.dox',
 | 
					
						
							|  |  |  |   'dox/internals/audio.dox',
 | 
					
						
							|  |  |  |   'dox/internals/scheduling.dox',
 | 
					
						
							| 
									
										
										
										
											2025-07-14 12:33:22 +02:00
										 |  |  |   'dox/internals/driver.dox',
 | 
					
						
							| 
									
										
										
										
											2023-11-18 15:13:05 +02:00
										 |  |  |   'dox/internals/protocol.dox',
 | 
					
						
							|  |  |  |   'dox/internals/pulseaudio.dox',
 | 
					
						
							|  |  |  |   'dox/internals/dma-buf.dox',
 | 
					
						
							|  |  |  |   'dox/tutorial/index.dox',
 | 
					
						
							|  |  |  |   'dox/tutorial/tutorial1.dox',
 | 
					
						
							|  |  |  |   'dox/tutorial/tutorial2.dox',
 | 
					
						
							|  |  |  |   'dox/tutorial/tutorial3.dox',
 | 
					
						
							|  |  |  |   'dox/tutorial/tutorial4.dox',
 | 
					
						
							|  |  |  |   'dox/tutorial/tutorial5.dox',
 | 
					
						
							|  |  |  |   'dox/tutorial/tutorial6.dox',
 | 
					
						
							| 
									
										
										
										
											2025-09-22 10:55:32 +02:00
										 |  |  |   'dox/tutorial/tutorial7.dox',
 | 
					
						
							| 
									
										
										
										
											2023-11-18 15:13:05 +02:00
										 |  |  |   'dox/api/index.dox',
 | 
					
						
							|  |  |  |   'dox/api/spa-index.dox',
 | 
					
						
							|  |  |  |   'dox/api/spa-plugins.dox',
 | 
					
						
							|  |  |  |   'dox/api/spa-design.dox',
 | 
					
						
							|  |  |  |   'dox/api/spa-pod.dox',
 | 
					
						
							|  |  |  |   'dox/api/spa-buffer.dox',
 | 
					
						
							| 
									
										
										
										
											2021-05-07 09:09:45 +10:00
										 |  |  | ]
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 21:31:16 +02:00
										 |  |  | manpage_docs = [
 | 
					
						
							| 
									
										
										
										
											2024-02-18 23:50:20 +02:00
										 |  |  |   'dox/config/pipewire-pulse.conf.5.md',
 | 
					
						
							|  |  |  |   'dox/config/pipewire.conf.5.md',
 | 
					
						
							|  |  |  |   'dox/config/pipewire-client.conf.5.md',
 | 
					
						
							|  |  |  |   'dox/config/pipewire-jack.conf.5.md',
 | 
					
						
							| 
									
										
										
										
											2024-07-23 21:36:34 +03:00
										 |  |  |   'dox/config/pipewire-props.7.md',
 | 
					
						
							| 
									
										
										
										
											2024-02-18 23:50:20 +02:00
										 |  |  |   'dox/config/pipewire-filter-chain.conf.5.md',
 | 
					
						
							|  |  |  |   'dox/config/pipewire-pulse-modules.7.md',
 | 
					
						
							|  |  |  |   'dox/config/libpipewire-modules.7.md',
 | 
					
						
							| 
									
										
										
										
											2023-11-21 21:31:16 +02:00
										 |  |  |   'dox/programs/pipewire-pulse.1.md',
 | 
					
						
							|  |  |  |   'dox/programs/pipewire.1.md',
 | 
					
						
							|  |  |  |   'dox/programs/pw-cat.1.md',
 | 
					
						
							|  |  |  |   'dox/programs/pw-cli.1.md',
 | 
					
						
							|  |  |  |   'dox/programs/pw-config.1.md',
 | 
					
						
							| 
									
										
										
										
											2024-02-09 10:23:03 +01:00
										 |  |  |   'dox/programs/pw-container.1.md',
 | 
					
						
							| 
									
										
										
										
											2023-11-21 21:31:16 +02:00
										 |  |  |   'dox/programs/pw-dot.1.md',
 | 
					
						
							|  |  |  |   'dox/programs/pw-dump.1.md',
 | 
					
						
							|  |  |  |   'dox/programs/pw-jack.1.md',
 | 
					
						
							|  |  |  |   'dox/programs/pw-link.1.md',
 | 
					
						
							|  |  |  |   'dox/programs/pw-loopback.1.md',
 | 
					
						
							|  |  |  |   'dox/programs/pw-metadata.1.md',
 | 
					
						
							|  |  |  |   'dox/programs/pw-mididump.1.md',
 | 
					
						
							|  |  |  |   'dox/programs/pw-mon.1.md',
 | 
					
						
							|  |  |  |   'dox/programs/pw-profiler.1.md',
 | 
					
						
							| 
									
										
										
										
											2023-12-08 18:48:43 +02:00
										 |  |  |   'dox/programs/pw-reserve.1.md',
 | 
					
						
							| 
									
										
										
										
											2023-11-21 21:31:16 +02:00
										 |  |  |   'dox/programs/pw-top.1.md',
 | 
					
						
							| 
									
										
										
										
											2023-12-09 15:48:47 +02:00
										 |  |  |   'dox/programs/pw-v4l2.1.md',
 | 
					
						
							|  |  |  |   'dox/programs/spa-acp-tool.1.md',
 | 
					
						
							|  |  |  |   'dox/programs/spa-inspect.1.md',
 | 
					
						
							|  |  |  |   'dox/programs/spa-json-dump.1.md',
 | 
					
						
							|  |  |  |   'dox/programs/spa-monitor.1.md',
 | 
					
						
							|  |  |  |   'dox/programs/spa-resample.1.md',
 | 
					
						
							| 
									
										
										
										
											2023-11-21 21:31:16 +02:00
										 |  |  | ]
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | manpages = []
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | foreach m : manpage_docs
 | 
					
						
							|  |  |  |   name = fs.stem(fs.name(m))
 | 
					
						
							|  |  |  |   pagepart = name.replace('.', '_')
 | 
					
						
							|  |  |  |   manpages += [[name, f'page_man_@pagepart@']]
 | 
					
						
							|  |  |  |   extra_docs += m
 | 
					
						
							|  |  |  | endforeach
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-02 20:55:53 +03:00
										 |  |  | inputs = []
 | 
					
						
							| 
									
										
										
										
											2021-05-07 09:09:45 +10:00
										 |  |  | foreach extra : extra_docs
 | 
					
						
							| 
									
										
										
										
											2021-12-28 16:35:20 +01:00
										 |  |  |   inputs += meson.project_source_root() / 'doc' / extra
 | 
					
						
							| 
									
										
										
										
											2021-05-07 09:09:45 +10:00
										 |  |  | endforeach
 | 
					
						
							| 
									
										
										
										
											2021-10-02 20:55:53 +03:00
										 |  |  | foreach h : pipewire_headers
 | 
					
						
							| 
									
										
										
										
											2021-12-28 16:35:20 +01:00
										 |  |  |   inputs += meson.project_source_root() / 'src' / 'pipewire' / h
 | 
					
						
							| 
									
										
										
										
											2021-10-02 20:55:53 +03:00
										 |  |  | endforeach
 | 
					
						
							|  |  |  | foreach h : pipewire_ext_headers
 | 
					
						
							| 
									
										
										
										
											2021-12-28 16:35:20 +01:00
										 |  |  |   inputs += meson.project_source_root() / 'src' / 'pipewire' / 'extensions' / h
 | 
					
						
							| 
									
										
										
										
											2021-10-02 20:55:53 +03:00
										 |  |  | endforeach
 | 
					
						
							|  |  |  | foreach h : pipewire_ext_sm_headers
 | 
					
						
							| 
									
										
										
										
											2021-12-28 16:35:20 +01:00
										 |  |  |   inputs += meson.project_source_root() / 'src' / 'pipewire' / 'extensions' / h
 | 
					
						
							| 
									
										
										
										
											2021-10-02 20:55:53 +03:00
										 |  |  | endforeach
 | 
					
						
							|  |  |  | foreach h : pipewire_sources
 | 
					
						
							| 
									
										
										
										
											2021-12-28 16:35:20 +01:00
										 |  |  |   inputs += meson.project_source_root() / 'src' / 'pipewire' / h
 | 
					
						
							| 
									
										
										
										
											2021-10-02 20:55:53 +03:00
										 |  |  | endforeach
 | 
					
						
							|  |  |  | foreach h : module_sources
 | 
					
						
							| 
									
										
										
										
											2021-12-28 16:35:20 +01:00
										 |  |  |   inputs += meson.project_source_root() / 'src' / 'modules' / h
 | 
					
						
							| 
									
										
										
										
											2021-10-02 20:55:53 +03:00
										 |  |  | endforeach
 | 
					
						
							| 
									
										
										
										
											2023-11-19 23:08:09 +02:00
										 |  |  | foreach h : pipewire_module_protocol_pulse_sources
 | 
					
						
							|  |  |  |   inputs += meson.project_source_root() / 'src' / 'modules' / h
 | 
					
						
							|  |  |  | endforeach
 | 
					
						
							| 
									
										
										
										
											2021-12-28 16:35:20 +01:00
										 |  |  | input_dirs = [ meson.project_source_root() / 'spa' / 'include' / 'spa' ]
 | 
					
						
							| 
									
										
										
										
											2021-10-02 20:55:53 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | path_prefixes = [
 | 
					
						
							| 
									
										
										
										
											2021-12-28 16:35:20 +01:00
										 |  |  |   meson.project_source_root() / 'src',
 | 
					
						
							|  |  |  |   meson.project_source_root() / 'spa' / 'include',
 | 
					
						
							|  |  |  |   meson.project_source_root(),
 | 
					
						
							| 
									
										
										
										
											2021-10-02 20:55:53 +03:00
										 |  |  | ]
 | 
					
						
							| 
									
										
										
										
											2021-05-07 09:09:45 +10:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-21 14:53:48 +10:00
										 |  |  | cssfiles = [
 | 
					
						
							| 
									
										
										
										
											2021-12-28 16:35:20 +01:00
										 |  |  |   meson.project_source_root() / 'doc' / 'doxygen-awesome.css',
 | 
					
						
							|  |  |  |   meson.project_source_root() / 'doc' / 'custom.css'
 | 
					
						
							| 
									
										
										
										
											2021-05-21 14:53:48 +10:00
										 |  |  | ]
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-09 23:25:29 +03:00
										 |  |  | # Example files (in order from simple to esoteric)
 | 
					
						
							|  |  |  | example_files = [
 | 
					
						
							| 
									
										
										
										
											2021-10-10 00:09:32 +03:00
										 |  |  |   'tutorial1.c',
 | 
					
						
							|  |  |  |   'tutorial2.c',
 | 
					
						
							|  |  |  |   'tutorial3.c',
 | 
					
						
							|  |  |  |   'tutorial4.c',
 | 
					
						
							|  |  |  |   'tutorial5.c',
 | 
					
						
							|  |  |  |   'tutorial6.c',
 | 
					
						
							| 
									
										
										
										
											2025-09-22 10:55:32 +02:00
										 |  |  |   'tutorial7.c',
 | 
					
						
							| 
									
										
										
										
											2021-10-09 23:25:29 +03:00
										 |  |  | ]
 | 
					
						
							| 
									
										
										
										
											2024-02-24 16:49:09 +02:00
										 |  |  | example_dep_files = []
 | 
					
						
							|  |  |  | foreach h : example_files
 | 
					
						
							|  |  |  |   example_dep_files += ['examples/' + h]
 | 
					
						
							|  |  |  | endforeach
 | 
					
						
							| 
									
										
										
										
											2021-10-31 14:17:58 +02:00
										 |  |  | foreach h : examples
 | 
					
						
							|  |  |  |   example_files += [h + '.c']
 | 
					
						
							| 
									
										
										
										
											2024-02-24 16:49:09 +02:00
										 |  |  |   example_dep_files += ['../src/examples/' + h + '.c']
 | 
					
						
							| 
									
										
										
										
											2021-10-31 14:17:58 +02:00
										 |  |  | endforeach
 | 
					
						
							|  |  |  | foreach h : spa_examples
 | 
					
						
							|  |  |  |   example_files += ['spa/examples/' + h + '.c']
 | 
					
						
							| 
									
										
										
										
											2024-02-24 16:49:09 +02:00
										 |  |  |   example_dep_files += ['../spa/examples/' + h + '.c']
 | 
					
						
							| 
									
										
										
										
											2021-10-31 14:17:58 +02:00
										 |  |  | endforeach
 | 
					
						
							| 
									
										
										
										
											2021-10-09 23:25:29 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | example_doxygen = []
 | 
					
						
							|  |  |  | example_ref = []
 | 
					
						
							|  |  |  | foreach h : example_files
 | 
					
						
							|  |  |  |   example_doxygen += ['\\example ' + h,
 | 
					
						
							|  |  |  |                       '\\snippet{doc} ' + h + ' title',
 | 
					
						
							|  |  |  |                       '<br>',
 | 
					
						
							|  |  |  |                       '\\snippet{doc} ' + h + ' doc']
 | 
					
						
							|  |  |  |   example_ref += ['- \\ref ' + h + ' "": \snippet{doc} ' + h + ' title']
 | 
					
						
							|  |  |  | endforeach
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | examples_dox_conf = configuration_data()
 | 
					
						
							|  |  |  | examples_dox_conf.set('example_doxygen', '\n'.join(example_doxygen))
 | 
					
						
							|  |  |  | examples_dox_conf.set('example_ref', '\n'.join(example_ref))
 | 
					
						
							|  |  |  | examples_dox = configure_file(input: 'examples.dox.in',
 | 
					
						
							|  |  |  |                               output: 'examples.dox',
 | 
					
						
							|  |  |  |                               configuration: examples_dox_conf)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | input_dirs += [ 'doc/examples.dox' ]
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 21:31:16 +02:00
										 |  |  | module_manpage_list = []
 | 
					
						
							|  |  |  | foreach m : module_sources
 | 
					
						
							|  |  |  |    name = fs.stem(m)
 | 
					
						
							|  |  |  |    pagepart = name.replace('-', '_')
 | 
					
						
							|  |  |  |    module_manpage_list += f'\\ref page_@pagepart@ "libpipewire-@name@(7)"'
 | 
					
						
							|  |  |  |    manpages += [[f'libpipewire-@name@.7', f'page_@pagepart@']]
 | 
					
						
							| 
									
										
										
										
											2022-01-20 21:06:54 +02:00
										 |  |  | endforeach
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 21:31:16 +02:00
										 |  |  | doxygen_env.set('LIBPIPEWIRE_MODULES', '<ul><li>' + '</li><li>'.join(module_manpage_list) + '</li></ul>')
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | pulse_module_manpage_list = []
 | 
					
						
							|  |  |  | foreach m : pipewire_module_protocol_pulse_sources
 | 
					
						
							|  |  |  |   name = fs.stem(fs.name(m))
 | 
					
						
							|  |  |  |   if m.contains('/modules/') and name.startswith('module-')
 | 
					
						
							|  |  |  |     pagepart = name.replace('-', '_')
 | 
					
						
							|  |  |  |     pulse_module_manpage_list += f'\\ref page_pulse_@pagepart@ "pipewire-pulse-@name@(7)"'
 | 
					
						
							|  |  |  |     manpages += [[f'pipewire-pulse-@name@.7', f'page_pulse_@pagepart@']]
 | 
					
						
							|  |  |  |   endif
 | 
					
						
							|  |  |  | endforeach
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | doxygen_env.set('PIPEWIRE_PULSE_MODULES', '<ul><li>' + '</li><li>'.join(pulse_module_manpage_list) + '</li></ul>')
 | 
					
						
							| 
									
										
										
										
											2022-01-20 21:06:54 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-04 11:26:27 +02:00
										 |  |  | doxygen_layout = meson.project_source_root() / 'doc' / 'DoxygenLayout.xml'
 | 
					
						
							| 
									
										
										
										
											2023-11-19 23:08:09 +02:00
										 |  |  | doxygen_filter_c = meson.project_source_root() / 'doc' / 'input-filter.py'
 | 
					
						
							| 
									
										
										
										
											2023-11-04 12:35:30 +02:00
										 |  |  | doxygen_filter_h = meson.project_source_root() / 'doc' / 'input-filter-h.sh'
 | 
					
						
							| 
									
										
										
										
											2023-12-09 18:34:56 +02:00
										 |  |  | doxygen_filter_md = meson.project_source_root() / 'doc' / 'input-filter-md.py'
 | 
					
						
							| 
									
										
										
										
											2023-11-04 11:26:27 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-04 22:14:38 +03:00
										 |  |  | doxyfile_conf.set('inputs', ' '.join(inputs + input_dirs))
 | 
					
						
							| 
									
										
										
										
											2021-05-21 14:53:48 +10:00
										 |  |  | doxyfile_conf.set('cssfiles', ' '.join(cssfiles))
 | 
					
						
							| 
									
										
										
										
											2023-11-04 11:26:27 +02:00
										 |  |  | doxyfile_conf.set('layout', doxygen_layout)
 | 
					
						
							| 
									
										
										
										
											2021-10-02 19:24:17 +03:00
										 |  |  | doxyfile_conf.set('path_prefixes', ' '.join(path_prefixes))
 | 
					
						
							| 
									
										
										
										
											2023-11-04 12:35:30 +02:00
										 |  |  | doxyfile_conf.set('c_input_filter', doxygen_filter_c)
 | 
					
						
							|  |  |  | doxyfile_conf.set('h_input_filter', doxygen_filter_h)
 | 
					
						
							| 
									
										
										
										
											2023-12-09 18:34:56 +02:00
										 |  |  | doxyfile_conf.set('md_input_filter', doxygen_filter_md)
 | 
					
						
							| 
									
										
										
										
											2017-09-05 13:35:25 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-30 19:46:51 +02:00
										 |  |  | doxyfile = configure_file(input: 'Doxyfile.in',
 | 
					
						
							|  |  |  |                           output: 'Doxyfile',
 | 
					
						
							| 
									
										
										
										
											2020-05-19 16:49:38 +02:00
										 |  |  |                           configuration: doxyfile_conf)
 | 
					
						
							| 
									
										
										
										
											2017-05-30 19:46:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-15 21:45:53 +03:00
										 |  |  | docdir = get_option('docdir')
 | 
					
						
							|  |  |  | if docdir == ''
 | 
					
						
							|  |  |  |   docdir = pipewire_datadir / 'doc' / meson.project_name()
 | 
					
						
							|  |  |  | endif
 | 
					
						
							| 
									
										
										
										
											2017-05-30 19:46:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-09 18:34:56 +02:00
										 |  |  | index_json = custom_target('index.json',
 | 
					
						
							|  |  |  |   command: [ doxygen_filter_md, '--index', '@INPUT@' ],
 | 
					
						
							|  |  |  |   input: extra_docs + manpage_docs,
 | 
					
						
							|  |  |  |   output: 'index.json',
 | 
					
						
							|  |  |  |   env: doxygen_env
 | 
					
						
							|  |  |  | )
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-30 19:46:51 +02:00
										 |  |  | html_target = custom_target('pipewire-docs',
 | 
					
						
							| 
									
										
										
										
											2024-02-24 16:49:09 +02:00
										 |  |  |                             input: [ doxyfile, doxygen_layout, example_dep_files, examples_dox,
 | 
					
						
							|  |  |  |                                      doxygen_filter_c, doxygen_filter_h, index_json ] + inputs + cssfiles,
 | 
					
						
							| 
									
										
										
										
											2017-05-30 19:46:51 +02:00
										 |  |  |                             output: [ 'html' ],
 | 
					
						
							|  |  |  |                             command: [ doxygen, doxyfile ],
 | 
					
						
							| 
									
										
										
										
											2023-11-21 21:31:16 +02:00
										 |  |  |                             env: doxygen_env,
 | 
					
						
							| 
									
										
										
										
											2023-11-24 17:48:22 +02:00
										 |  |  |                             install: install_docs,
 | 
					
						
							| 
									
										
										
										
											2023-11-24 23:17:34 +02:00
										 |  |  |                             install_tag: 'doc',
 | 
					
						
							| 
									
										
										
										
											2021-04-15 21:45:53 +03:00
										 |  |  |                             install_dir: docdir)
 | 
					
						
							| 
									
										
										
										
											2023-11-18 20:04:06 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 21:31:16 +02:00
										 |  |  | man_fixup = files('man-fixup.py')
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | manfiles = []
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | foreach m : manpages
 | 
					
						
							|  |  |  |   file = m.get(0)
 | 
					
						
							|  |  |  |   page = m.get(1)
 | 
					
						
							|  |  |  |   name = fs.stem(file)
 | 
					
						
							|  |  |  |   section = file.split('.').get(-1)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   manfiles += custom_target(file,
 | 
					
						
							|  |  |  |      command : [ python, man_fixup, '@INPUT@', page, name, section, meson.project_version() ],
 | 
					
						
							|  |  |  |      output : file,
 | 
					
						
							|  |  |  |      input : html_target,
 | 
					
						
							|  |  |  |      depend_files : [ man_fixup ],
 | 
					
						
							|  |  |  |      capture : true,
 | 
					
						
							| 
									
										
										
										
											2023-11-24 17:48:22 +02:00
										 |  |  |      install : install_man,
 | 
					
						
							| 
									
										
										
										
											2023-11-24 23:17:34 +02:00
										 |  |  |      install_tag: 'man',
 | 
					
						
							| 
									
										
										
										
											2023-11-21 21:31:16 +02:00
										 |  |  |      install_dir : get_option('mandir') / 'man' + section
 | 
					
						
							|  |  |  |   )
 | 
					
						
							|  |  |  | endforeach
 |