diff options
author | David Robillard <d@drobilla.net> | 2023-09-23 16:31:16 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2023-09-23 16:31:16 -0400 |
commit | a20595e543a7c6070f7e8453adfbbc3cfab32a52 (patch) | |
tree | d1a3660be974d94c3a70a6e7fb67de871f4be924 | |
parent | a5d242b14d2b168bfe5d00e74227e672df2a8245 (diff) | |
download | serd-a20595e543a7c6070f7e8453adfbbc3cfab32a52.tar.gz serd-a20595e543a7c6070f7e8453adfbbc3cfab32a52.tar.bz2 serd-a20595e543a7c6070f7e8453adfbbc3cfab32a52.zip |
Explicitly specify all documentation dependencies
Yet another attempt to sort out flaky documentation builds. This tries to be
careful and describe the complete documentation dependency graph to meson
explicitly (ignoring tool outputs that aren't used). Also remove the shared
doctrees directory option, since I suspect this causes issues in parallel
builds.
-rw-r--r-- | doc/api/meson.build | 4 | ||||
-rw-r--r-- | doc/html/meson.build | 5 | ||||
-rw-r--r-- | doc/meson.build | 11 | ||||
-rw-r--r-- | doc/singlehtml/meson.build | 5 | ||||
-rw-r--r-- | doc/xml/meson.build | 26 |
5 files changed, 37 insertions, 14 deletions
diff --git a/doc/api/meson.build b/doc/api/meson.build index f4fc057a..b6abb49c 100644 --- a/doc/api/meson.build +++ b/doc/api/meson.build @@ -1,9 +1,9 @@ # Copyright 2020-2023 David Robillard <d@drobilla.net> # SPDX-License-Identifier: 0BSD OR ISC -c_serd_rst = custom_target( +api_serd_rst = custom_target( 'serd.rst', command: [sphinxygen, '-f', '@INPUT0@', '@OUTDIR@'], - input: [c_index_xml], + input: doxygen_xml, output: 'serd.rst', ) diff --git a/doc/html/meson.build b/doc/html/meson.build index f4a11b27..3e91bcaa 100644 --- a/doc/html/meson.build +++ b/doc/html/meson.build @@ -14,14 +14,15 @@ custom_target( sphinx_in_dir, '@OUTDIR@', ], - input: [conf_py, c_rst_files, c_serd_rst], + input: [api_serd_rst, conf_py, sphinx_input], install: true, install_dir: html_dir, output: [ + 'index.html', + '_static', 'api', 'genindex.html', - 'index.html', 'overview.html', ], ) diff --git a/doc/meson.build b/doc/meson.build index e1e2b918..1528a4b7 100644 --- a/doc/meson.build +++ b/doc/meson.build @@ -50,9 +50,12 @@ if build_docs ) # Copy hand-written documentation files - c_rst_files = files('index.rst', 'overview.rst') - foreach f : c_rst_files - configure_file(copy: true, input: f, output: '@PLAINNAME@') + rst_sources = files('index.rst', 'overview.rst') + sphinx_input = [] + foreach f : rst_sources + sphinx_input += [ + configure_file(copy: true, input: f, output: '@PLAINNAME@'), + ] endforeach # Generate reference documentation input with Doxygen and Sphinxygen @@ -61,7 +64,7 @@ if build_docs # Build strict Sphinx flags, with termination on warnings if werror=true sphinx_in_dir = meson.current_build_dir() - sphinx_flags = ['-d', sphinx_in_dir / '.doctrees', '-E', '-a', '-q'] + sphinx_flags = ['-E', '-a', '-q'] if get_option('werror') sphinx_flags += ['-W'] endif diff --git a/doc/singlehtml/meson.build b/doc/singlehtml/meson.build index 8b92c349..19dd277b 100644 --- a/doc/singlehtml/meson.build +++ b/doc/singlehtml/meson.build @@ -14,12 +14,13 @@ custom_target( sphinx_in_dir, '@OUTDIR@', ], - input: [conf_py, c_rst_files, c_serd_rst], + input: [api_serd_rst, conf_py, sphinx_input], install: true, install_dir: singlehtml_dir, output: [ - '_static', 'index.html', + + '_static', ], ) diff --git a/doc/xml/meson.build b/doc/xml/meson.build index 503eff3a..fb60d15b 100644 --- a/doc/xml/meson.build +++ b/doc/xml/meson.build @@ -5,15 +5,33 @@ config = configuration_data() config.set('SERD_SRCDIR', serd_src_root) config.set('DOX_OUTPUT', meson.current_build_dir() / '..') -c_doxyfile = configure_file( +doxyfile = configure_file( configuration: config, input: files('../Doxyfile.in'), output: 'Doxyfile', ) -c_index_xml = custom_target( +doxygen_xml = custom_target( 'index.xml', command: [doxygen, '@INPUT0@'], - input: [c_doxyfile] + c_headers, - output: 'index.xml', + input: [doxyfile] + c_headers, + output: [ + 'index.xml', + + 'group__serd.xml', + 'group__serd__env.xml', + 'group__serd__event.xml', + 'group__serd__node.xml', + 'group__serd__reader.xml', + 'group__serd__status.xml', + 'group__serd__streams.xml', + 'group__serd__string.xml', + 'group__serd__uri.xml', + 'group__serd__writer.xml', + 'serd_8h.xml', + 'structSerdChunk.xml', + 'structSerdError.xml', + 'structSerdNode.xml', + 'structSerdURI.xml', + ], ) |