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'),