From a20595e543a7c6070f7e8453adfbbc3cfab32a52 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 23 Sep 2023 16:31:16 -0400 Subject: 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. --- doc/api/meson.build | 4 ++-- doc/html/meson.build | 5 +++-- doc/meson.build | 11 +++++++---- doc/singlehtml/meson.build | 5 +++-- 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 # 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', + ], ) -- cgit v1.2.1