@@ -63,22 +63,30 @@ add_custom_target(
6363 ${CMAKE_CURRENT_BINARY_DIR} ${OUT_DBOOK}
6464)
6565
66+ find_program (JAVA_BIN java REQUIRED )
67+ find_program (XMLSTARLET xmlstarlet REQUIRED )
6668set (HTML_XSLT "${CMAKE_CURRENT_SOURCE_DIR} /xhtml-opts.xsl" )
6769set (MANUAL_CSS "${CMAKE_CURRENT_SOURCE_DIR} /manual.css" )
68- find_program (XMLSTARLET xmlstarlet REQUIRED )
70+ set (DOCBOOK_CSS_FILES
71+ "docbook.css" "docbook-paged.css"
72+ "docbook-toc.css" "pygments.css"
73+ )
74+ set (DOCBOOK_JS_FILES "copy-verbatim.js" "persistent-toc.js" )
75+ set (OUT_MANUAL_CSS "html/css/manual.css" )
6976set (OUT_HTML "html/index.html" )
70- set (OUT_DOCBOOK_CSS "html/docbook.css" )
71- set (OUT_MANUAL_CSS "html/manual.css" )
72- add_custom_command (
73- OUTPUT "html "
74- COMMAND ${CMAKE_COMMAND} -E make_directory html
77+
78+ configure_file (
79+ "xml-catalog.xml.in"
80+ "xml-catalog.xml "
81+ @ONLY
7582)
7683add_custom_command (
7784 OUTPUT ${OUT_HTML}
78- BYPRODUCTS ${OUT_DOCBOOK_CSS}
79- DEPENDS ${OUT_DBOOK} ${HTML_XSLT} "html"
80- WORKING_DIRECTORY html
81- COMMAND ${XMLSTARLET} tr ${HTML_XSLT} ${OUT_DBOOK} >index.html
85+ DEPENDS ${OUT_DBOOK} "xml-catalog.xml" ${HTML_XSLT}
86+ COMMAND
87+ ${JAVA_BIN} -jar ${xsltng_JAR}
88+ -catalog:xml-catalog.xml -xsl:${HTML_XSLT}
89+ -o:${OUT_HTML} ${OUT_DBOOK}
8290)
8391# Place needed files into HTML tree
8492add_custom_command (
@@ -87,6 +95,29 @@ add_custom_command(
8795 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MANUAL_CSS} ${OUT_MANUAL_CSS}
8896 COMMENT "Copy manual.css"
8997)
98+ set (OUT_DOCBOOK_FILES "" )
99+ foreach (FILENAME ${DOCBOOK_CSS_FILES} )
100+ set (INPATH "${xsltng_SOURCE_DIR} /resources/css/${FILENAME} " )
101+ set (OUTPATH "html/css/${FILENAME} " )
102+ add_custom_command (
103+ OUTPUT ${OUTPATH}
104+ DEPENDS ${INPATH}
105+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${INPATH} ${OUTPATH}
106+ COMMENT "Copy css/${FILENAME} "
107+ )
108+ list (APPEND OUT_DOCBOOK_FILES ${OUTPATH} )
109+ endforeach ()
110+ foreach (FILENAME ${DOCBOOK_JS_FILES} )
111+ set (INPATH "${xsltng_SOURCE_DIR} /resources/js/${FILENAME} " )
112+ set (OUTPATH "html/js/${FILENAME} " )
113+ add_custom_command (
114+ OUTPUT ${OUTPATH}
115+ DEPENDS ${INPATH}
116+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${INPATH} ${OUTPATH}
117+ COMMENT "Copy js/${FILENAME} "
118+ )
119+ list (APPEND OUT_DOCBOOK_FILES ${OUTPATH} )
120+ endforeach ()
90121add_custom_target (
91122 ${PROJECT_NAME} -img-html
92123 DEPENDS ${INSTALL_IMGS} ${OUT_HTML} ${PROJECT_NAME} -img-bin
@@ -97,7 +128,7 @@ add_custom_target(
97128add_custom_target (
98129 ${PROJECT_NAME} -html ALL
99130 DEPENDS
100- ${OUT_HTML} ${OUT_DOCBOOK_CSS } ${OUT_MANUAL_CSS } ${PROJECT_NAME} -img-html
131+ ${OUT_HTML} ${OUT_MANUAL_CSS } ${OUT_DOCBOOK_FILES } ${PROJECT_NAME} -img-html
101132)
102133install (
103134 DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /html"
@@ -134,12 +165,16 @@ add_custom_target(
134165
135166# PDF document output
136167find_program (DBLATEX dblatex REQUIRED )
168+ set (PDF_STYLE "${CMAKE_CURRENT_SOURCE_DIR} /manual.sty" )
137169set (PDF_XSLT "${CMAKE_CURRENT_SOURCE_DIR} /pdf-opts.xsl" )
138170set (OUT_PDF "manual.pdf" )
139171add_custom_command (
140172 OUTPUT ${OUT_PDF}
141- DEPENDS ${OUT_DBOOK} ${PDF_XSLT} ${PROJECT_NAME} -img-bin
142- COMMAND ${DBLATEX} -o ${OUT_PDF} --xsl-user=${PDF_XSLT} ${OUT_DBOOK}
173+ DEPENDS ${OUT_DBOOK} ${PDF_STYLE} ${PDF_XSLT} ${PROJECT_NAME} -img-bin
174+ COMMAND
175+ ${DBLATEX}
176+ --texstyle=${PDF_STYLE} --xsl-user=${PDF_XSLT}
177+ -o ${OUT_PDF} ${OUT_DBOOK}
143178)
144179add_custom_target (
145180 ${PROJECT_NAME} -pdf ALL
0 commit comments