diff options
author | Brad King <brad.king@kitware.com> | 2023-06-23 14:46:02 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2023-06-23 14:46:30 (GMT) |
commit | f7bf4dc87167e544ac1d356839e595187a09ce2c (patch) | |
tree | 614654a0eea3a7f2f5613b4474e2749abe5f32ee /Utilities | |
parent | ebde96f35019c5256fb3948fd8fcc087c85fc97d (diff) | |
parent | 0c14b6085a117af4a1cafa0b1b14aa6ceb343781 (diff) | |
download | CMake-f7bf4dc87167e544ac1d356839e595187a09ce2c.zip CMake-f7bf4dc87167e544ac1d356839e595187a09ce2c.tar.gz CMake-f7bf4dc87167e544ac1d356839e595187a09ce2c.tar.bz2 |
Merge topic 'sphinx-docutils-warning'
0c14b6085a Utilities/Sphinx: Fix warning from docutils 0.18.1+
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8578
Diffstat (limited to 'Utilities')
-rw-r--r-- | Utilities/Sphinx/cmake.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/Utilities/Sphinx/cmake.py b/Utilities/Sphinx/cmake.py index 67dcec7..60bfb33 100644 --- a/Utilities/Sphinx/cmake.py +++ b/Utilities/Sphinx/cmake.py @@ -582,12 +582,23 @@ class CMakeXRefTransform(Transform): # after the sphinx (210) and docutils (220) substitutions. default_priority = 221 + # This helper supports docutils < 0.18, which is missing 'findall', + # and docutils == 0.18.0, which is missing 'traverse'. + def _document_findall_as_list(self, condition): + if hasattr(self.document, 'findall'): + # Fully iterate into a list so the caller can grow 'self.document' + # while iterating. + return list(self.document.findall(condition)) + + # Fallback to 'traverse' on old docutils, which returns a list. + return self.document.traverse(condition) + def apply(self): env = self.document.settings.env # Find CMake cross-reference nodes and add index and target # nodes for them. - for ref in self.document.traverse(addnodes.pending_xref): + for ref in self._document_findall_as_list(addnodes.pending_xref): if not ref['refdomain'] == 'cmake': continue |