From 9893383ec1f53e7c2443c1bc82861019f9125e8b Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 23 Sep 2023 16:29:44 -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 | 17 +++++++++++++---- 5 files changed, 28 insertions(+), 14 deletions(-) diff --git a/doc/api/meson.build b/doc/api/meson.build index cdf4eb7..a5cecf8 100644 --- a/doc/api/meson.build +++ b/doc/api/meson.build @@ -1,9 +1,9 @@ # Copyright 2021-2022 David Robillard # SPDX-License-Identifier: 0BSD OR ISC -c_suil_rst = custom_target( +api_suil_rst = custom_target( 'suil.rst', command: [sphinxygen, '-f', '@INPUT0@', '@OUTDIR@'], - input: [c_index_xml], + input: doxygen_xml, output: 'suil.rst', ) diff --git a/doc/html/meson.build b/doc/html/meson.build index e55f026..7a41dc5 100644 --- a/doc/html/meson.build +++ b/doc/html/meson.build @@ -14,14 +14,15 @@ custom_target( sphinx_in_dir, '@OUTDIR@', ], - input: [c_rst_files, c_suil_rst, c_index_xml, conf_py], + input: [api_suil_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 b6f6402..4db8c74 100644 --- a/doc/meson.build +++ b/doc/meson.build @@ -44,9 +44,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 @@ -55,7 +58,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 7303085..0398b32 100644 --- a/doc/singlehtml/meson.build +++ b/doc/singlehtml/meson.build @@ -14,12 +14,13 @@ custom_target( sphinx_in_dir, '@OUTDIR@', ], - input: [c_rst_files, c_suil_rst, c_index_xml, conf_py], + input: [api_suil_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 bbbf130..e49aeaf 100644 --- a/doc/xml/meson.build +++ b/doc/xml/meson.build @@ -7,15 +7,24 @@ config = configuration_data() config.set('SUIL_SRCDIR', suil_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__suil.xml', + 'group__suil__callbacks.xml', + 'group__suil__host.xml', + 'group__suil__instance.xml', + 'group__suil__library.xml', + 'suil_8h.xml', + ], ) -- cgit v1.2.1