2009-12-29 12:12:26 +00:00
|
|
|
#
|
|
|
|
# - Find unix commands from cygwin
|
|
|
|
# This module looks for some usual Unix commands.
|
|
|
|
#
|
|
|
|
|
2015-01-14 23:13:40 +00:00
|
|
|
include(FindCygwin)
|
2009-12-29 12:12:26 +00:00
|
|
|
|
2015-01-14 23:13:40 +00:00
|
|
|
if(ENABLE_PDF_GUIDES)
|
|
|
|
find_package(FOP)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(ENABLE_CHM_GUIDES)
|
|
|
|
find_package(SED)
|
|
|
|
endif()
|
2015-01-08 23:39:27 +00:00
|
|
|
|
2015-01-14 23:13:40 +00:00
|
|
|
find_program(XSLTPROC_EXECUTABLE
|
2009-12-29 12:12:26 +00:00
|
|
|
NAMES
|
|
|
|
xsltproc
|
|
|
|
PATHS
|
|
|
|
${CYGWIN_INSTALL_PATH}/bin
|
|
|
|
/bin
|
|
|
|
/usr/bin
|
|
|
|
/usr/local/bin
|
|
|
|
/sbin
|
|
|
|
)
|
|
|
|
|
|
|
|
# Handle the QUIETLY and REQUIRED arguments and set XSLTPROC_FOUND to TRUE if
|
|
|
|
# all listed variables are TRUE
|
|
|
|
INCLUDE(FindPackageHandleStandardArgs)
|
|
|
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XSLTPROC DEFAULT_MSG XSLTPROC_EXECUTABLE)
|
|
|
|
|
|
|
|
MARK_AS_ADVANCED(XSLTPROC_EXECUTABLE)
|
|
|
|
|
2015-01-07 00:59:32 +00:00
|
|
|
set (_common_xsltproc_args
|
|
|
|
--stringparam use.id.as.filename 1
|
|
|
|
--stringparam admon.graphics 1
|
|
|
|
--stringparam admon.graphics.extension .svg
|
|
|
|
--stringparam section.autolabel 1
|
|
|
|
--stringparam section.label.includes.component.label 1
|
|
|
|
--stringparam html.stylesheet ws.css
|
|
|
|
)
|
|
|
|
|
2015-01-09 00:55:26 +00:00
|
|
|
if (WIN32 AND NOT "${CYGWIN_INSTALL_PATH}" STREQUAL "" AND ${XSLTPROC_EXECUTABLE} MATCHES "${CYGWIN_INSTALL_PATH}")
|
|
|
|
FIND_PROGRAM(CYGPATH_EXECUTABLE
|
|
|
|
NAMES cygpath
|
|
|
|
PATHS ${CYGWIN_INSTALL_PATH}/bin
|
|
|
|
)
|
|
|
|
# XXX Duplicate of TO_A2X_COMPATIBLE_PATH
|
|
|
|
MACRO( TO_XSLTPROC_COMPATIBLE_PATH _cmake_path _result )
|
|
|
|
execute_process(
|
|
|
|
COMMAND ${CYGPATH_EXECUTABLE} -u ${_cmake_path}
|
|
|
|
OUTPUT_VARIABLE _cygwin_path
|
|
|
|
)
|
|
|
|
# cygpath adds a linefeed.
|
|
|
|
string(STRIP "${_cygwin_path}" _cygwin_path)
|
|
|
|
|
|
|
|
set( ${_result} ${_cygwin_path} )
|
|
|
|
ENDMACRO()
|
|
|
|
|
|
|
|
TO_XSLTPROC_COMPATIBLE_PATH( ${CMAKE_CURRENT_SOURCE_DIR} _xsltproc_current_source_dir )
|
|
|
|
TO_XSLTPROC_COMPATIBLE_PATH( ${CMAKE_CURRENT_BINARY_DIR} _xsltproc_current_binary_dir )
|
|
|
|
|
|
|
|
set ( _xsltproc_path "${_xsltproc_current_source_dir}:${_xsltproc_current_binary_dir}:${_xsltproc_current_binary_dir}/wsluarm_src")
|
|
|
|
else()
|
|
|
|
set ( _xsltproc_path "${CMAKE_CURRENT_SOURCE_DIR}:${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_BINARY_DIR}/wsluarm_src")
|
|
|
|
endif()
|
2015-01-07 00:59:32 +00:00
|
|
|
|
|
|
|
# Translate XML to HTML
|
2009-12-29 12:12:26 +00:00
|
|
|
#XML2HTML(
|
2014-08-23 23:09:58 +00:00
|
|
|
# wsug or wsdg
|
2010-02-25 12:30:44 +00:00
|
|
|
# single-page or chunked
|
|
|
|
# WSUG_FILES
|
|
|
|
# WSUG_GRAPHICS
|
2009-12-29 12:12:26 +00:00
|
|
|
#)
|
2015-08-08 01:17:04 +00:00
|
|
|
MACRO(XML2HTML _target_dep _dir_pfx _mode _dbk_source _gfx_sources)
|
|
|
|
# We depend on the docbook target to avoid parallel builds.
|
|
|
|
SET(_dbk_dep ${_target_dep}_docbook)
|
|
|
|
#SET(_validated ${_dir_pfx}.validated)
|
2010-02-25 12:30:44 +00:00
|
|
|
|
2009-12-29 12:12:26 +00:00
|
|
|
IF(${_mode} STREQUAL "chunked")
|
2015-08-08 01:17:04 +00:00
|
|
|
SET(_basedir ${_dir_pfx}_html_chunked)
|
2015-08-09 15:57:29 +00:00
|
|
|
SET(_STYLESHEET "http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
|
|
|
|
SET(_modeparams --noout)
|
2009-12-29 12:12:26 +00:00
|
|
|
ELSE() # single-page
|
2015-08-08 01:17:04 +00:00
|
|
|
SET(_basedir ${_dir_pfx}_html)
|
2015-08-09 15:57:29 +00:00
|
|
|
SET(_STYLESHEET "http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl")
|
2015-01-14 23:13:40 +00:00
|
|
|
SET(_modeparams --output ${_basedir}/index.html)
|
2009-12-29 12:12:26 +00:00
|
|
|
ENDIF()
|
|
|
|
|
2015-08-08 01:17:04 +00:00
|
|
|
SET(_out_dir ${CMAKE_CURRENT_BINARY_DIR}/${_basedir})
|
2014-08-23 23:09:58 +00:00
|
|
|
SET(_output ${_basedir}/index.html)
|
|
|
|
|
2015-08-08 01:17:04 +00:00
|
|
|
FOREACH(_tmpgfx ${${_gfx_sources}})
|
|
|
|
set(_gfx_deps ${CMAKE_CURRENT_SOURCE_DIR}/${_tmpgfx})
|
|
|
|
ENDFOREACH()
|
|
|
|
|
2014-08-23 23:09:58 +00:00
|
|
|
# GET_FILENAME_COMPONENT(_GFXDIR ${_gfx} ABSOLUTE)
|
|
|
|
# GET_FILENAME_COMPONENT(_GFXDIR ${_GFXDIR} PATH)
|
|
|
|
# GET_FILENAME_COMPONENT(_OUTDIR ${_output} PATH)
|
|
|
|
# SET(_OUTDIR ${CMAKE_CURRENT_BINARY_DIR}/${_OUTDIR})
|
|
|
|
|
2015-08-08 01:17:04 +00:00
|
|
|
SET(_gfx_dir ${_dir_pfx}_graphics)
|
2009-12-29 12:12:26 +00:00
|
|
|
ADD_CUSTOM_COMMAND(
|
|
|
|
OUTPUT
|
|
|
|
${_output}
|
2015-04-26 18:11:44 +00:00
|
|
|
COMMAND ${CMAKE_COMMAND}
|
2015-08-08 01:17:04 +00:00
|
|
|
-E make_directory ${_out_dir}
|
2015-04-26 18:11:44 +00:00
|
|
|
COMMAND ${CMAKE_COMMAND}
|
2015-08-08 01:17:04 +00:00
|
|
|
-E make_directory ${_out_dir}/${_gfx_dir}/toolbar
|
2015-04-26 18:11:44 +00:00
|
|
|
COMMAND ${CMAKE_COMMAND}
|
2015-08-08 01:17:04 +00:00
|
|
|
-E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/${_gfx_dir} ${_out_dir}/${_gfx_dir}
|
2015-04-26 18:11:44 +00:00
|
|
|
COMMAND ${CMAKE_COMMAND}
|
2015-08-08 01:17:04 +00:00
|
|
|
-E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/common_graphics ${_out_dir}/${_gfx_dir}
|
2015-04-26 18:11:44 +00:00
|
|
|
COMMAND ${CMAKE_COMMAND}
|
2015-08-08 01:17:04 +00:00
|
|
|
-E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/${_gfx_dir}/toolbar ${_out_dir}/${_gfx_dir}/toolbar
|
2015-04-26 18:11:44 +00:00
|
|
|
COMMAND ${CMAKE_COMMAND}
|
2015-08-08 01:17:04 +00:00
|
|
|
-E copy ${CMAKE_CURRENT_SOURCE_DIR}/ws.css ${_out_dir}
|
2014-07-08 22:16:48 +00:00
|
|
|
COMMAND ${XSLTPROC_EXECUTABLE}
|
2015-01-09 00:55:26 +00:00
|
|
|
--path "${_xsltproc_path}"
|
2014-08-23 23:09:58 +00:00
|
|
|
--stringparam base.dir ${_basedir}/
|
2015-01-14 23:13:40 +00:00
|
|
|
${_common_xsltproc_args}
|
2015-08-08 01:17:04 +00:00
|
|
|
--stringparam admon.graphics.path ${_gfx_dir}/
|
2014-11-17 20:12:54 +00:00
|
|
|
${_modeparams}
|
2014-07-08 22:16:48 +00:00
|
|
|
${_STYLESHEET}
|
2015-08-08 01:17:04 +00:00
|
|
|
${_dbk_source}
|
2009-12-29 12:12:26 +00:00
|
|
|
DEPENDS
|
2015-08-08 01:17:04 +00:00
|
|
|
${_dbk_dep}
|
|
|
|
#${_validated}
|
|
|
|
${_gfx_deps}
|
2009-12-29 12:12:26 +00:00
|
|
|
)
|
2015-04-26 18:11:44 +00:00
|
|
|
IF(NOT WIN32)
|
|
|
|
ADD_CUSTOM_COMMAND(
|
|
|
|
OUTPUT
|
|
|
|
${_output}
|
|
|
|
COMMAND chmod
|
2015-08-08 01:17:04 +00:00
|
|
|
-R og+rX ${_out_dir}
|
2015-04-26 18:11:44 +00:00
|
|
|
APPEND
|
|
|
|
)
|
|
|
|
ENDIF()
|
2009-12-29 12:12:26 +00:00
|
|
|
ENDMACRO(XML2HTML)
|
|
|
|
|
2015-01-07 00:59:32 +00:00
|
|
|
# Translate XML to FO to PDF
|
2009-12-29 12:12:26 +00:00
|
|
|
#XML2PDF(
|
2014-07-08 22:16:48 +00:00
|
|
|
# user-guide-a4.fo or user-guide-us.fo
|
|
|
|
# WSUG_SOURCE
|
|
|
|
# custom_layer_pdf.xsl
|
|
|
|
# A4 or letter
|
2009-12-29 12:12:26 +00:00
|
|
|
#)
|
2015-08-08 01:17:04 +00:00
|
|
|
MACRO(XML2PDF _target_dep _output _dbk_source _stylesheet _paper)
|
|
|
|
# We depend on the docbook target to avoid parallel builds.
|
|
|
|
SET(_dbk_dep ${_target_dep}_docbook)
|
2010-02-25 12:30:44 +00:00
|
|
|
ADD_CUSTOM_COMMAND(
|
|
|
|
OUTPUT
|
|
|
|
${_output}
|
2015-08-08 01:17:04 +00:00
|
|
|
${_output}.fo
|
2014-07-08 22:16:48 +00:00
|
|
|
COMMAND ${XSLTPROC_EXECUTABLE}
|
2015-01-09 00:55:26 +00:00
|
|
|
--path "${_xsltproc_path}"
|
2014-07-08 22:16:48 +00:00
|
|
|
--stringparam paper.type ${_paper}
|
2014-08-17 16:23:31 +00:00
|
|
|
--stringparam img.src.path ${CMAKE_CURRENT_SOURCE_DIR}/
|
2014-07-08 22:16:48 +00:00
|
|
|
--stringparam use.id.as.filename 1
|
|
|
|
--stringparam admon.graphics 1
|
2014-07-24 01:28:32 +00:00
|
|
|
--stringparam admon.graphics.path ${CMAKE_CURRENT_SOURCE_DIR}/common_graphics/
|
|
|
|
--stringparam admon.graphics.extension .svg
|
2014-07-08 22:16:48 +00:00
|
|
|
--nonet
|
|
|
|
--output ${_output}.fo
|
|
|
|
${_stylesheet}
|
2015-08-08 01:17:04 +00:00
|
|
|
${_dbk_source}
|
2014-07-08 22:16:48 +00:00
|
|
|
COMMAND ${FOP_EXECUTABLE}
|
|
|
|
${_output}.fo
|
|
|
|
${_output}
|
|
|
|
DEPENDS
|
2015-08-08 01:17:04 +00:00
|
|
|
${_dbk_dep}
|
2014-07-08 22:16:48 +00:00
|
|
|
${_stylesheet}
|
2010-02-25 12:30:44 +00:00
|
|
|
)
|
|
|
|
ENDMACRO(XML2PDF)
|
2015-01-07 00:59:32 +00:00
|
|
|
|
|
|
|
# Translate XML to HHP
|
|
|
|
#XML2HHP(
|
|
|
|
# wsug or wsdg
|
|
|
|
# user-guide.xml or developer-guide.xml
|
|
|
|
#)
|
2015-08-08 01:17:04 +00:00
|
|
|
MACRO(XML2HHP _target_dep _guide _docbooksource)
|
|
|
|
# We depend on the docbook target to avoid parallel builds.
|
|
|
|
SET(_dbk_dep ${_target_dep}_docbook)
|
2015-01-07 00:59:32 +00:00
|
|
|
GET_FILENAME_COMPONENT( _source_base_name ${_docbooksource} NAME_WE )
|
|
|
|
set( _output_chm ${_source_base_name}.chm )
|
|
|
|
set( _output_hhp ${_source_base_name}.hhp )
|
|
|
|
set( _output_toc_hhc ${_source_base_name}-toc.hhc )
|
2015-01-08 23:39:27 +00:00
|
|
|
set( _docbook_plain_title ${_source_base_name}-plain-title.xml )
|
2015-01-07 00:59:32 +00:00
|
|
|
|
|
|
|
SET(_gfxdir ${_guide}_graphics)
|
|
|
|
SET(_basedir ${_guide}_chm)
|
|
|
|
ADD_CUSTOM_COMMAND(
|
|
|
|
OUTPUT
|
|
|
|
${_output_hhp}
|
2015-08-08 01:17:04 +00:00
|
|
|
${_output_toc_hhc}
|
2015-01-14 23:13:40 +00:00
|
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${_basedir}
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${_basedir}/${_gfxdir}
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/${_gfxdir} ${_basedir}/${_gfxdir}
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/common_graphics ${_basedir}/${_gfxdir}
|
|
|
|
# HTML Help doesn't render decimal character entities in the title.
|
|
|
|
COMMAND ${SED_EXECUTABLE}
|
|
|
|
-e "s|er’s Guide</title>|er's Guide</title>|"
|
|
|
|
< ${_docbooksource}
|
|
|
|
> ${_docbook_plain_title}
|
2015-01-07 00:59:32 +00:00
|
|
|
COMMAND ${XSLTPROC_EXECUTABLE}
|
2015-01-09 00:55:26 +00:00
|
|
|
--path "${_xsltproc_path}"
|
2015-01-07 00:59:32 +00:00
|
|
|
--stringparam base.dir ${_basedir}/
|
2015-01-14 23:13:40 +00:00
|
|
|
--stringparam htmlhelp.chm ${_output_chm}
|
|
|
|
--stringparam htmlhelp.hhp ${_output_hhp}
|
|
|
|
--stringparam htmlhelp.hhc ${_output_toc_hhc}
|
|
|
|
${_common_xsltproc_args}
|
2015-01-07 00:59:32 +00:00
|
|
|
--stringparam admon.graphics.path ${_gfxdir}/
|
2015-01-14 23:13:40 +00:00
|
|
|
--nonet custom_layer_chm.xsl
|
|
|
|
${_docbook_plain_title}
|
2015-01-07 00:59:32 +00:00
|
|
|
DEPENDS
|
2015-08-08 01:17:04 +00:00
|
|
|
${_dbk_dep}
|
2015-01-14 23:13:40 +00:00
|
|
|
# AsciiDoc uses UTF-8 by default, which is unsupported by HTML
|
|
|
|
# Help. We may want to render an ISO-8859-1 version, or get rid
|
|
|
|
# of HTML Help.
|
2015-08-08 01:17:04 +00:00
|
|
|
custom_layer_chm.xsl
|
2015-01-07 00:59:32 +00:00
|
|
|
)
|
|
|
|
ENDMACRO(XML2HHP)
|