summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-06-23 14:43:10 (GMT)
committerBrad King <brad.king@kitware.com>2023-06-23 14:43:10 (GMT)
commit4902fe086be3599c1198d81f32384fa86a98bff0 (patch)
tree52ef8474f366ef5fd753684c7590d14b23f8e62d
parent492bf5e0ac1b57a39bc6ed916abf556f5cf97edf (diff)
parent4e11859e0e428647df39f1609412e37136f65901 (diff)
downloadCMake-4902fe086be3599c1198d81f32384fa86a98bff0.zip
CMake-4902fe086be3599c1198d81f32384fa86a98bff0.tar.gz
CMake-4902fe086be3599c1198d81f32384fa86a98bff0.tar.bz2
Merge branch 'backport-3.26-sphinx-domain-parallel' into release-3.26
Merge-request: !8575
-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)