2 # - Find unix commands from cygwin
3 # This module looks for some usual Unix commands.
10 FIND_PROGRAM(XSLTPROC_EXECUTABLE
14 ${CYGWIN_INSTALL_PATH}/bin
21 # Handle the QUIETLY and REQUIRED arguments and set XSLTPROC_FOUND to TRUE if
22 # all listed variables are TRUE
23 INCLUDE(FindPackageHandleStandardArgs)
24 FIND_PACKAGE_HANDLE_STANDARD_ARGS(XSLTPROC DEFAULT_MSG XSLTPROC_EXECUTABLE)
26 MARK_AS_ADVANCED(XSLTPROC_EXECUTABLE)
28 set (_common_xsltproc_args
29 --stringparam use.id.as.filename 1
30 --stringparam admon.graphics 1
31 --stringparam admon.graphics.extension .svg
32 --stringparam section.autolabel 1
33 --stringparam section.label.includes.component.label 1
34 --stringparam html.stylesheet ws.css
37 if (WIN32 AND NOT "${CYGWIN_INSTALL_PATH}" STREQUAL "" AND ${XSLTPROC_EXECUTABLE} MATCHES "${CYGWIN_INSTALL_PATH}")
38 FIND_PROGRAM(CYGPATH_EXECUTABLE
40 PATHS ${CYGWIN_INSTALL_PATH}/bin
42 # XXX Duplicate of TO_A2X_COMPATIBLE_PATH
43 MACRO( TO_XSLTPROC_COMPATIBLE_PATH _cmake_path _result )
45 COMMAND ${CYGPATH_EXECUTABLE} -u ${_cmake_path}
46 OUTPUT_VARIABLE _cygwin_path
48 # cygpath adds a linefeed.
49 string(STRIP "${_cygwin_path}" _cygwin_path)
51 set( ${_result} ${_cygwin_path} )
54 TO_XSLTPROC_COMPATIBLE_PATH( ${CMAKE_CURRENT_SOURCE_DIR} _xsltproc_current_source_dir )
55 TO_XSLTPROC_COMPATIBLE_PATH( ${CMAKE_CURRENT_BINARY_DIR} _xsltproc_current_binary_dir )
57 set ( _xsltproc_path "${_xsltproc_current_source_dir}:${_xsltproc_current_binary_dir}:${_xsltproc_current_binary_dir}/wsluarm_src")
59 set ( _xsltproc_path "${CMAKE_CURRENT_SOURCE_DIR}:${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_BINARY_DIR}/wsluarm_src")
62 # Translate XML to HTML
65 # single-page or chunked
69 MACRO(XML2HTML _guide _mode _xmlsources _gfxsources)
70 SET(_validated ${_guide}.validated)
72 IF(${_mode} STREQUAL "chunked")
73 SET(_basedir ${_guide}_html_chunked)
74 SET(_STYLESHEET "http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
75 SET(_modeparams --noout)
77 SET(_basedir ${_guide}_html)
78 SET(_STYLESHEET "http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl")
79 SET(_modeparams --output ${_basedir}/index.html)
82 SET(_outdir ${CMAKE_CURRENT_BINARY_DIR}/${_basedir})
83 SET(_output ${_basedir}/index.html)
85 # FOREACH(_tmpgfx ${${_gfxsources}})
86 # set(_gfx ${_tmpgfx})
89 # GET_FILENAME_COMPONENT(_GFXDIR ${_gfx} ABSOLUTE)
90 # GET_FILENAME_COMPONENT(_GFXDIR ${_GFXDIR} PATH)
91 # GET_FILENAME_COMPONENT(_OUTDIR ${_output} PATH)
92 # SET(_OUTDIR ${CMAKE_CURRENT_BINARY_DIR}/${_OUTDIR})
94 FOREACH(_tmpsource ${${_xmlsources}})
95 set(_source ${_tmpsource})
99 SET(_gfxdir ${_guide}_graphics)
104 -E make_directory ${_outdir}
106 -E make_directory ${_outdir}/${_gfxdir}/toolbar
108 ${CMAKE_CURRENT_SOURCE_DIR}/${_gfxdir}/*.* ${_outdir}/${_gfxdir}/
110 ${CMAKE_CURRENT_SOURCE_DIR}/common_graphics/*.* ${_outdir}/${_gfxdir}/
112 ${CMAKE_CURRENT_SOURCE_DIR}/${_gfxdir}/toolbar/*.* ${_outdir}/${_gfxdir}/toolbar/
114 -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ws.css ${_outdir}
115 COMMAND ${XSLTPROC_EXECUTABLE}
116 --path "${_xsltproc_path}"
117 --stringparam base.dir ${_basedir}/
118 ${_common_xsltproc_args}
119 --stringparam admon.graphics.path ${_gfxdir}/
132 # Translate XML to FO to PDF
134 # user-guide-a4.fo or user-guide-us.fo
136 # custom_layer_pdf.xsl
139 MACRO(XML2PDF _output _sources _stylesheet _paper)
140 FOREACH(_tmpsource ${${_sources}})
141 set(_source ${_tmpsource})
148 COMMAND ${XSLTPROC_EXECUTABLE}
149 --path "${_xsltproc_path}"
150 --stringparam paper.type ${_paper}
151 --stringparam img.src.path ${CMAKE_CURRENT_SOURCE_DIR}/
152 --stringparam use.id.as.filename 1
153 --stringparam admon.graphics 1
154 --stringparam admon.graphics.path ${CMAKE_CURRENT_SOURCE_DIR}/common_graphics/
155 --stringparam admon.graphics.extension .svg
157 --output ${_output}.fo
160 COMMAND ${FOP_EXECUTABLE}
169 # Translate XML to HHP
172 # user-guide.xml or developer-guide.xml
174 MACRO(XML2HHP _guide _docbooksource)
175 GET_FILENAME_COMPONENT( _source_base_name ${_docbooksource} NAME_WE )
176 set( _output_chm ${_source_base_name}.chm )
177 set( _output_hhp ${_source_base_name}.hhp )
178 set( _output_toc_hhc ${_source_base_name}-toc.hhc )
179 set( _docbook_plain_title ${_source_base_name}-plain-title.xml )
181 SET(_gfxdir ${_guide}_graphics)
182 SET(_basedir ${_guide}_chm)
186 COMMAND ${CMAKE_COMMAND} -E make_directory ${_basedir}
187 COMMAND ${CMAKE_COMMAND} -E make_directory ${_basedir}/${_gfxdir}
188 COMMAND ${CMAKE_COMMAND} -E copy_directory ${_gfxdir} ${_basedir}/${_gfxdir}
189 COMMAND ${CMAKE_COMMAND} -E copy_directory common_graphics ${_basedir}
190 COMMAND ${SED_EXECUTABLE}
191 -e "s|er’s Guide</title>|er's Guide</title>|"
193 > ${_docbook_plain_title}
194 COMMAND ${XSLTPROC_EXECUTABLE}
195 --path "${_xsltproc_path}"
196 --stringparam base.dir ${_basedir}/
197 --stringparam htmlhelp.chm ${_output_chm}
198 --stringparam htmlhelp.hhp ${_output_hhp}
199 --stringparam htmlhelp.hhc ${_output_toc_hhc}
200 ${_common_xsltproc_args}
201 --stringparam admon.graphics.path ${_gfxdir}/
202 --nonet custom_layer_chm.xsl
203 ${_docbook_plain_title}