diff options
author | Stephen Kelly <steveire@gmail.com> | 2014-06-13 13:27:59 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2014-06-17 09:06:48 (GMT) |
commit | b5002631c0fedc5ae747fc0450fb4285f977b512 (patch) | |
tree | 710232526ffca5126b05a255843c5495cafa4a96 | |
parent | 6b05e03de4353275d1e2e614150757397bd1f855 (diff) | |
download | CMake-b5002631c0fedc5ae747fc0450fb4285f977b512.zip CMake-b5002631c0fedc5ae747fc0450fb4285f977b512.tar.gz CMake-b5002631c0fedc5ae747fc0450fb4285f977b512.tar.bz2 |
Help: Create proper identifiers for keywords in QtHelp.
This is necessary in order for the QHelpEngineCore::linksForIdentifier API
to work.
http://doc-snapshot.qt-project.org/qt5-5.3/qhelpenginecore.html#linksForIdentifier
That API is used by QtCreator to enable contextual links to help files.
-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) |