summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJared Dillard <jared.dillard@gmail.com>2023-06-20 05:19:04 (GMT)
committerBrad King <brad.king@kitware.com>2023-06-21 15:52:10 (GMT)
commit4e11859e0e428647df39f1609412e37136f65901 (patch)
tree52ef8474f366ef5fd753684c7590d14b23f8e62d
parent492bf5e0ac1b57a39bc6ed916abf556f5cf97edf (diff)
downloadCMake-4e11859e0e428647df39f1609412e37136f65901.zip
CMake-4e11859e0e428647df39f1609412e37136f65901.tar.gz
CMake-4e11859e0e428647df39f1609412e37136f65901.tar.bz2
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
-rw-r--r--Utilities/Sphinx/cmake.py13
1 files changed, 13 insertions, 0 deletions
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)