diff options
author | Jared Dillard <jared.dillard@gmail.com> | 2023-06-20 05:19:04 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2023-06-21 15:52:10 (GMT) |
commit | 4e11859e0e428647df39f1609412e37136f65901 (patch) | |
tree | 52ef8474f366ef5fd753684c7590d14b23f8e62d | |
parent | 492bf5e0ac1b57a39bc6ed916abf556f5cf97edf (diff) | |
download | CMake-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.py | 13 |
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) |