From f1eff805e3160cf9eac26dad84f56f5a3338bcb3 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 23 Sep 2023 16:27:35 -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). --- doc/api/meson.build | 6 ++-- doc/html/meson.build | 5 +-- doc/meson.build | 13 ++++++-- doc/singlehtml/meson.build | 5 +-- doc/xml/meson.build | 81 +++++++++++++++++++++++++++++++++++++++++++--- 5 files changed, 95 insertions(+), 15 deletions(-) diff --git a/doc/api/meson.build b/doc/api/meson.build index fc14b90..7ef505c 100644 --- a/doc/api/meson.build +++ b/doc/api/meson.build @@ -1,9 +1,9 @@ -# Copyright 2021 David Robillard +# Copyright 2021-2023 David Robillard # SPDX-License-Identifier: 0BSD OR ISC -c_zix_rst = custom_target( +api_zix_rst = custom_target( 'zix.rst', command: [sphinxygen, '-f', '@INPUT0@', '@OUTDIR@'], - input: [c_index_xml], + input: doxygen_xml, output: 'zix.rst', ) diff --git a/doc/html/meson.build b/doc/html/meson.build index 14ded6d..fb84a04 100644 --- a/doc/html/meson.build +++ b/doc/html/meson.build @@ -13,16 +13,17 @@ custom_target( '@OUTDIR@' / '..', '-t', 'html', ] + sphinx_flags, - input: [c_rst_files, c_zix_rst, c_index_xml, conf_py], + input: [api_zix_rst, conf_py, sphinx_input], install: true, install_dir: html_dir, output: [ + 'index.html', + '_static', 'allocation.html', 'api', 'error_handling.html', 'genindex.html', - 'index.html', 'string_views.html', 'using_zix.html', ], diff --git a/doc/meson.build b/doc/meson.build index 11dad4f..98cb4af 100644 --- a/doc/meson.build +++ b/doc/meson.build @@ -58,17 +58,24 @@ if build_docs ) # Copy hand-written documentation files - c_rst_files = files( + rst_sources = files( 'allocation.rst', 'error_handling.rst', 'index.rst', 'string_views.rst', 'using_zix.rst', ) - foreach f : c_rst_files + files('overview_code.c') - configure_file(copy: true, input: f, output: '@PLAINNAME@') + sphinx_input = [] + foreach f : rst_sources + sphinx_input += [ + configure_file(copy: true, input: f, output: '@PLAINNAME@'), + ] endforeach + # Copy documentation code + doc_c_sources = files('overview_code.c') + configure_file(copy: true, input: doc_c_sources, output: '@PLAINNAME@') + # Generate reference documentation input with Doxygen and Sphinxygen subdir('xml') subdir('api') diff --git a/doc/singlehtml/meson.build b/doc/singlehtml/meson.build index 0fea876..63a1bc2 100644 --- a/doc/singlehtml/meson.build +++ b/doc/singlehtml/meson.build @@ -13,12 +13,13 @@ custom_target( '@OUTDIR@' / '..', '-t', 'singlehtml', ] + sphinx_flags, - input: [c_rst_files, c_zix_rst, c_index_xml, conf_py], + input: [api_zix_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 b614580..d3f5b03 100644 --- a/doc/xml/meson.build +++ b/doc/xml/meson.build @@ -1,19 +1,90 @@ -# Copyright 2021-2022 David Robillard +# Copyright 2021-2023 David Robillard # SPDX-License-Identifier: 0BSD OR ISC config = configuration_data() config.set('ZIX_SRCDIR', zix_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', + + 'allocator_8h.xml', + 'attributes_8h.xml', + 'btree_8h.xml', + 'bump__allocator_8h.xml', + 'digest_8h.xml', + 'filesystem_8h.xml', + 'group__bump__allocator.xml', + 'group__zix.xml', + 'group__zix__algorithms.xml', + 'group__zix__allocation.xml', + 'group__zix__allocator.xml', + 'group__zix__attributes.xml', + 'group__zix__btree.xml', + 'group__zix__btree__iteration.xml', + 'group__zix__btree__modification.xml', + 'group__zix__btree__searching.xml', + 'group__zix__btree__setup.xml', + 'group__zix__data__structures.xml', + 'group__zix__digest.xml', + 'group__zix__file__system.xml', + 'group__zix__fs__access.xml', + 'group__zix__fs__creation.xml', + 'group__zix__fs__environment.xml', + 'group__zix__fs__locking.xml', + 'group__zix__fs__ops.xml', + 'group__zix__fs__queries.xml', + 'group__zix__fs__resolution.xml', + 'group__zix__hash.xml', + 'group__zix__hash__datatypes.xml', + 'group__zix__hash__iteration.xml', + 'group__zix__hash__modification.xml', + 'group__zix__hash__searching.xml', + 'group__zix__hash__setup.xml', + 'group__zix__path.xml', + 'group__zix__path__concatenation.xml', + 'group__zix__path__decomposition.xml', + 'group__zix__path__lexical.xml', + 'group__zix__path__queries.xml', + 'group__zix__ring.xml', + 'group__zix__ring__read.xml', + 'group__zix__ring__setup.xml', + 'group__zix__ring__write.xml', + 'group__zix__sem.xml', + 'group__zix__status.xml', + 'group__zix__string__view.xml', + 'group__zix__thread.xml', + 'group__zix__threading.xml', + 'group__zix__tree.xml', + 'group__zix__tree__iteration.xml', + 'group__zix__tree__modification.xml', + 'group__zix__tree__searching.xml', + 'group__zix__tree__setup.xml', + 'group__zix__utilities.xml', + 'hash_8h.xml', + 'path_8h.xml', + 'ring_8h.xml', + 'sem_8h.xml', + 'status_8h.xml', + 'string__view_8h.xml', + 'structZixAllocatorImpl.xml', + 'structZixBTreeIter.xml', + 'structZixBumpAllocator.xml', + 'structZixHashInsertPlan.xml', + 'structZixRingTransaction.xml', + 'structZixStringView.xml', + 'thread_8h.xml', + 'tree_8h.xml', + 'zix_8h.xml', + ] ) -- cgit v1.2.1