Files
extra/extra-cmake-modules/ecm-sphinx4.patch
2025-06-22 20:39:04 -05:00

64 lines
2.3 KiB
Diff

diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt
index 84cca9e..32687b6 100644
--- a/docs/CMakeLists.txt
+++ b/docs/CMakeLists.txt
@@ -110,7 +110,8 @@ if(BUILD_MAN_DOCS)
set(name "${CMAKE_MATCH_1}")
set(sec "${CMAKE_MATCH_2}")
install(
- FILES ${CMAKE_CURRENT_BINARY_DIR}/man/${name}.${sec}
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/man/${name}.${sec} ${CMAKE_CURRENT_BINARY_DIR}/man/${sec}/${name}.${sec}
+ OPTIONAL
DESTINATION ${MAN_INSTALL_DIR}/man${sec}
)
endif()
diff --git a/docs/sphinx/ext/ecm.py b/docs/sphinx/ext/ecm.py
index 8667b36..a09e489 100644
--- a/docs/sphinx/ext/ecm.py
+++ b/docs/sphinx/ext/ecm.py
@@ -5,6 +5,7 @@
#
# SPDX-License-Identifier: BSD-3-Clause
+import html
import os
import re
@@ -19,8 +20,11 @@ CMakeLexer.tokens["args"].append(('(\\$<)(.+?)(>)',
# Monkey patch for sphinx generating invalid content for qcollectiongenerator
# https://bitbucket.org/birkenfeld/sphinx/issue/1435/qthelp-builder-should-htmlescape-keywords
-from sphinx.util.pycompat import htmlescape
-from sphinx.builders.qthelp import QtHelpBuilder
+try:
+ from sphinxcontrib.qthelp import QtHelpBuilder
+except ImportError:
+ # sphinx < 4.0
+ from sphinx.builders.qthelp import QtHelpBuilder
old_build_keywords = QtHelpBuilder.build_keywords
def new_build_keywords(self, title, refs, subitems):
old_items = old_build_keywords(self, title, refs, subitems)
@@ -29,13 +33,12 @@ def new_build_keywords(self, title, refs, subitems):
before, rest = item.split("ref=\"", 1)
ref, after = rest.split("\"")
if ("<" in ref and ">" in ref):
- new_items.append(before + "ref=\"" + htmlescape(ref) + "\"" + after)
+ new_items.append(before + "ref=\"" + html.escape(ref) + "\"" + after)
else:
new_items.append(item)
return new_items
QtHelpBuilder.build_keywords = new_build_keywords
-
from docutils.parsers.rst import Directive, directives
from docutils.transforms import Transform
try:
@@ -127,7 +130,7 @@ class _ecm_index_entry:
self.desc = desc
def __call__(self, title, targetid):
- return ('pair', u'%s ; %s' % (self.desc, title), targetid, 'main')
+ return ('pair', u'%s ; %s' % (self.desc, title), targetid, 'main', None)
_ecm_index_objs = {
'manual': _ecm_index_entry('manual'),