From 4e11859e0e428647df39f1609412e37136f65901 Mon Sep 17 00:00:00 2001 From: Jared Dillard Date: Tue, 20 Jun 2023 01:19:04 -0400 Subject: Utilities/Sphinx: Fix parallel documentation builds for 3.26 In commit d78bfa1ecc (Utilities/Sphinx: support cmakedomain running in parallel, 2022-10-24, v3.26.0-rc1~495^2) we declared the domain as parallel-safe without actually implementing the required `merge_domaindata` method. Issue: #24076 --- Utilities/Sphinx/cmake.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Utilities/Sphinx/cmake.py b/Utilities/Sphinx/cmake.py index e4e06ab..32edc44 100644 --- a/Utilities/Sphinx/cmake.py +++ b/Utilities/Sphinx/cmake.py @@ -457,6 +457,19 @@ class CMakeDomain(Domain): for fullname in to_clear: del self.data['objects'][fullname] + def merge_domaindata(self, docnames, otherdata): + """Merge domaindata from the workers/chunks when they return. + + Called once per parallelization chunk. + Only used when sphinx is run in parallel mode. + + :param docnames: a Set of the docnames that are part of the current chunk to merge + :param otherdata: the partial data calculated by the current chunk + """ + for refname, (docname, objtype) in otherdata['objects'].items(): + if docname in docnames: + self.data['objects'][refname] = (docname, objtype) + def resolve_xref(self, env, fromdocname, builder, typ, target, node, contnode): targetid = '%s:%s' % (typ, target) -- cgit v0.12