summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalf Habacker <ralf.habacker@freenet.de>2018-03-21 10:42:41 +0100
committerRalf Habacker <ralf.habacker@freenet.de>2018-03-21 10:47:47 +0100
commitee6da0058fdcffe93566d139518e7c35bfff7586 (patch)
treef945a4e28bca3616b5b499de67d958d08e740d9a
parent50dc3bf5ae4bfbe5212f774b990e5a25f5602ce3 (diff)
Initial docbook support for generating html helpxsltproc-docbook-support
issues: - hhc does not run with on linux out of the box - generated files does not have any content only an index see http://www.sagehill.net/docbookxsl/HtmlHelp.html for further informations
-rw-r--r--cmake/modules/DocBookMacros.cmake20
1 files changed, 17 insertions, 3 deletions
diff --git a/cmake/modules/DocBookMacros.cmake b/cmake/modules/DocBookMacros.cmake
index aa4fcf3ff..b0872a57a 100644
--- a/cmake/modules/DocBookMacros.cmake
+++ b/cmake/modules/DocBookMacros.cmake
@@ -11,16 +11,18 @@
# DOCBOOK_STYLESHEET_MAN - default stylesheet for generating man pages
# DOCBOOK_STYLESHEET_HTML - default stylesheet for generating html pages
# DOCBOOK_STYLESHEET_PDF - default stylesheet for generating html pages
+# DOCBOOK_STYLESHEET_HTMLHELP - default stylesheet for generating html help pages
# DOCBOOK_INSTALL_MAN - default install directory for man pages (default value: share/man/man1)
# DOCBOOK_INSTALL_HTML - default install directory for html pages (default value: share/doc/<lower_case_project_name>)
# DOCBOOK_INSTALL_PDF - default install directory for pdf pages (default value: share/doc/<lower_case_project_name>)
+# DOCBOOK_INSTALL_HTMLHELP - default install directory for HTML help pages (default value: share/doc/<lower_case_project_name>)
#
# provided macros:
#
# DOCBOOK_GENERATE(source type)
#
# @param source main docbook file
-# @param type output type "man", "html" or "pdf"
+# @param type output type "man", "html", "htmlhelp" or "pdf"
#
# generate output from docbook file into current build dir
# and install generated file into the directory specified
@@ -56,10 +58,12 @@ endif()
set(DOCBOOK_STYLESHEET_MAN "${DOCBOOK_XSL_DIR}/manpages/docbook.xsl")
set(DOCBOOK_STYLESHEET_HTML "${DOCBOOK_XSL_DIR}/html/docbook.xsl")
set(DOCBOOK_STYLESHEET_PDF "${DOCBOOK_XSL_DIR}/fo/docbook.xsl")
+set(DOCBOOK_STYLESHEET_HTMLHELP "${DOCBOOK_XSL_DIR}/htmlhelp/htmlhelp.xsl")
set(DOCBOOK_INSTALL_MAN share/man/man1)
string(TOLOWER ${PROJECT_NAME} _name)
set(DOCBOOK_INSTALL_HTML share/doc/${_name})
set(DOCBOOK_INSTALL_PDF ${DOCBOOK_INSTALL_HTML})
+set(DOCBOOK_INSTALL_HTMLHELP ${DOCBOOK_INSTALL_HTML})
if(DOCBOOK_GENERATOR_NAME)
add_custom_target(xmldoc ALL)
@@ -69,6 +73,7 @@ macro(DOCBOOK_GENERATE _sources _format)
string(TOUPPER ${_format} _key)
get_filename_component(_infile ${_sources} ABSOLUTE)
get_filename_component(_name ${_infile} NAME)
+ get_filename_component(_basename ${_infile} NAME_WE)
set(_deps ${CMAKE_SOURCE_DIR}/CMakeLists.txt ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt)
if(${_format} STREQUAL "pdf" AND NOT (FOP_EXECUTABLE OR XSLTPROC_EXECUTABLE))
message(FATAL_ERROR "generating pdf output not supported because of missing requirements (fop, xsltproc)")
@@ -82,12 +87,21 @@ macro(DOCBOOK_GENERATE _sources _format)
set(STYLESHEET ${DOCBOOK_STYLESHEET_${_key}})
set(_outfile ${CMAKE_CURRENT_BINARY_DIR}/${_outname})
+ if(${_format} STREQUAL "htmlhelp")
+ set(_xsltproc_options
+ --stringparam htmlhelp.hhp ${_basename}.hhp
+ --stringparam htmlhelp.chm ${_basename}.chm
+ --stringparam htmlhelp.hhc ${_basename}-toc.hhc
+ --stringparam htmlhelp.hhk ${_basename}-index.hhk
+ --stringparam base.dir ${_basename}
+ )
+ endif()
if(EXISTS ${_sources})
if(XSLTPROC_EXECUTABLE)
if(${_format} STREQUAL "pdf")
add_custom_command(
OUTPUT ${_outfile}
- COMMAND ${XSLTPROC_EXECUTABLE} -o ${_outfile}.fo ${STYLESHEET} ${_infile}
+ COMMAND ${XSLTPROC_EXECUTABLE} -o ${_outfile}.fo ${_xmlto_options} ${STYLESHEET} ${_infile}
COMMAND ${FOP_EXECUTABLE} ${_outfile}.fo ${_outfile}
DEPENDS ${_infile} ${STYLESHEET} ${_deps}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
@@ -95,7 +109,7 @@ macro(DOCBOOK_GENERATE _sources _format)
else()
add_custom_command(
OUTPUT ${_outfile}
- COMMAND ${XSLTPROC_EXECUTABLE} -o ${_outfile} ${STYLESHEET} ${_infile}
+ COMMAND ${XSLTPROC_EXECUTABLE} -o ${_outfile} ${_xsltproc_options} ${STYLESHEET} ${_infile}
DEPENDS ${_infile} ${STYLESHEET} ${_deps}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)