pipewire/doc/meson.build
Peter Hutterer f8243f3cc1 doc: move spa/foo.md to spa-foo.md
Flatten the hierarchy a bit to make it easier to handle.
2021-05-26 10:02:10 +02:00

93 lines
2.7 KiB
Meson

doxyfile_conf = configuration_data()
doxyfile_conf.set('PACKAGE_NAME', meson.project_name())
doxyfile_conf.set('PACKAGE_VERSION', meson.project_version())
doxyfile_conf.set('top_srcdir', meson.source_root())
doxyfile_conf.set('top_builddir', meson.build_root())
if find_program('dot', required: false).found()
doxyfile_conf.set('HAVE_DOT', 'YES')
else
doxyfile_conf.set('HAVE_DOT', 'NO')
endif
inputs = []
foreach h : pipewire_headers
inputs += meson.source_root() / 'src' / 'pipewire' / h
endforeach
foreach h : pipewire_sources
inputs += meson.source_root() / 'src' / 'pipewire' / h
endforeach
# SPA headers use static inline functions. Doxygen doesn't extract those
# unless we have EXTRACT_STATIC set - but we don't want it to extract
# everything in the rest of the tree.
# The shell script here basically does a:
# cp spa/* builddir/spa/ && sed -i 's/^static//' buildir/spa/**.h
# The copied files are passed to doxygen as input and they are parsed as
# normal functions.
# Because this uses globbing, this target won't rebuild if the headers
# change but meh.
spa_header_dirs = []
sed = find_program('sed', required: false)
if sed.found()
spa_srcdir = meson.source_root() / 'spa' / 'include' / 'spa'
spa_dstdir = meson.current_build_dir() / 'spa'
spa_strip_static = custom_target(
'spa-strip-static',
command: [ find_program('strip-static.sh'), spa_srcdir, spa_dstdir ],
build_by_default: true,
output: 'spa',
)
spa_header_dirs += spa_dstdir
else
spa_strip_static = []
endif
extra_docs = [
'overview.md',
'design.txt',
'architecture.md',
'objects_design.md',
'tutorial-index.md',
'tutorial1.md',
'tutorial2.md',
'tutorial3.md',
'tutorial4.md',
'tutorial5.md',
'tutorial6.md',
'spa-index.md',
'spa-design.md',
'spa-pod.md',
'spa-buffer.md',
'pulseaudio.md',
]
foreach extra : extra_docs
inputs += meson.source_root() / 'doc' / extra
endforeach
cssfiles = [
meson.source_root() / 'doc' / 'doxygen-awesome.css',
meson.source_root() / 'doc' / 'custom.css'
]
doxyfile_conf.set('inputs', ' '.join(inputs + [spa_dstdir]))
doxyfile_conf.set('cssfiles', ' '.join(cssfiles))
doxyfile = configure_file(input: 'Doxyfile.in',
output: 'Doxyfile',
configuration: doxyfile_conf)
docdir = get_option('docdir')
if docdir == ''
docdir = pipewire_datadir / 'doc' / meson.project_name()
endif
html_target = custom_target('pipewire-docs',
input: [ doxyfile ] + inputs + cssfiles,
output: [ 'html' ],
command: [ doxygen, doxyfile ],
depends: spa_strip_static,
install: true,
install_dir: docdir)