diff options
-rw-r--r-- | Utilities/Sphinx/CMakeLists.txt | 5 | ||||
-rwxr-xr-x | Utilities/Sphinx/create_identifiers.py | 32 |
2 files changed, 37 insertions, 0 deletions
diff --git a/Utilities/Sphinx/CMakeLists.txt b/Utilities/Sphinx/CMakeLists.txt index 951f7ab..fd8cda9 100644 --- a/Utilities/Sphinx/CMakeLists.txt +++ b/Utilities/Sphinx/CMakeLists.txt @@ -88,6 +88,11 @@ if(SPHINX_QTHELP) COMMAND ${CMAKE_COMMAND} "-DQTHELP_DIR=${CMAKE_CURRENT_BINARY_DIR}/qthelp/" "-DCMake_VERSION=${CMake_VERSION_MAJOR}${CMake_VERSION_MINOR}${CMake_VERSION_PATCH}" -P "${CMAKE_CURRENT_SOURCE_DIR}/fixup_qthelp_names.cmake" + + # Create proper identifiers. Workaround for + # https://bitbucket.org/birkenfeld/sphinx/issue/1491/qthelp-should-generate-identifiers-for + COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/create_identifiers.py" "${CMAKE_CURRENT_BINARY_DIR}/qthelp/" + COMMAND qcollectiongenerator ${CMAKE_CURRENT_BINARY_DIR}/qthelp/CMake.qhcp ) endif() diff --git a/Utilities/Sphinx/create_identifiers.py b/Utilities/Sphinx/create_identifiers.py new file mode 100755 index 0000000..4db7a3f --- /dev/null +++ b/Utilities/Sphinx/create_identifiers.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python + +import sys, os + +if len(sys.argv) != 2: + sys.exit(-1) +name = sys.argv[1] + "/CMake.qhp" + +f = open(name) + +if not f: + sys.exit(-1) + +lines = f.read().splitlines() + +if not lines: + sys.exit(-1) + +newlines = [] + +for line in lines: + if "<keyword name=\"command\"" in line: + if not "id=\"" in line: + prefix = "<keyword name=\"command\" " + part1, part2 = line.split(prefix) + head, tail = part2.split("#command:") + cmdname, rest = tail.split("\"") + line = part1 + prefix + "id=\"command/" + cmdname + "\" " + part2 + newlines.append(line + "\n") + +f = open(name, "w") +f.writelines(newlines) |