914983a0dc
with a few hacks right now: - The tip.png, warning.png and note.png images are missing from the pdfs and I have no idea how to tell fop how to find them. - Disabling/enabling building the guides via option currently doesn't work (probably too many macros :-), so comment out the subdir instead. - Right now, in order to build the devleopers guide we need to do the following in the source docbook directory: touch wsdg_graphics/toolbar/dummy.dummy Apart from these: The build works with a pristine docbook dir (svn status --no-ignore). svn path=/trunk/; revision=32004
134 lines
3.9 KiB
CMake
134 lines
3.9 KiB
CMake
#
|
|
# $Id$
|
|
#
|
|
# - Find unix commands from cygwin
|
|
# This module looks for some usual Unix commands.
|
|
#
|
|
|
|
INCLUDE(FindCygwin)
|
|
|
|
FIND_PROGRAM(XSLTPROC_EXECUTABLE
|
|
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)
|
|
|
|
# Translate xml to html
|
|
#XML2HTML(
|
|
# wsug.validated
|
|
# wsug_html/user-guide.html or wsub_html/index.html
|
|
# single-page or chunked
|
|
# WSUG_FILES
|
|
# WSUG_GRAPHICS
|
|
#)
|
|
MACRO(XML2HTML _validated _output _mode _xmlsources _gfxsources)
|
|
FOREACH(_tmpgfx ${${_gfxsources}})
|
|
set(_gfx ${_tmpgfx})
|
|
BREAK()
|
|
ENDFOREACH()
|
|
GET_FILENAME_COMPONENT(_GFXDIR ${_gfx} PATH)
|
|
GET_FILENAME_COMPONENT(_OUTDIR ${_output} PATH)
|
|
SET(_OUTDIR ${CMAKE_CURRENT_BINARY_DIR}/${_OUTDIR})
|
|
|
|
IF(${_mode} STREQUAL "chunked")
|
|
SET(_STYLESHEET "http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
|
|
ELSE() # single-page
|
|
SET(_STYLESHEET "http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl")
|
|
ENDIF()
|
|
|
|
# FIXME: How do I extract the first element of a variable containing a
|
|
# list of values? Isn't there a "cleaner" solution?
|
|
# Oh, and I have no idea why I can't directly use _source instead of
|
|
# having to introduce _tmpsource.
|
|
FOREACH(_tmpsource ${${_xmlsources}})
|
|
set(_source ${_tmpsource})
|
|
BREAK()
|
|
ENDFOREACH()
|
|
|
|
ADD_CUSTOM_COMMAND(
|
|
OUTPUT
|
|
${_output}
|
|
# Fixme: find out about subdirs (i.e. toolbar) automatically
|
|
# so this works for wsdg as well.
|
|
COMMAND cmake
|
|
-E make_directory ${_OUTDIR}/${_GFXDIR}/toolbar
|
|
COMMAND cp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/${_GFXDIR}/*.* ${_OUTDIR}/${_GFXDIR}/
|
|
COMMAND cp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/${_GFXDIR}/toolbar/*.* ${_OUTDIR}/${_GFXDIR}/toolbar/
|
|
COMMAND cmake
|
|
-E copy ${CMAKE_CURRENT_SOURCE_DIR}/ws.css ${_OUTDIR}
|
|
COMMAND ${XSLTPROC_EXECUTABLE}
|
|
--path "${CMAKE_CURRENT_SOURCE_DIR}:${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_BINARY_DIR}/wsluarm_src"
|
|
--stringparam base.dir ${_OUTDIR}/
|
|
--stringparam use.id.as.filename 1
|
|
--stringparam admon.graphics 1
|
|
--stringparam admon.graphics.path ${_GFXDIR}/
|
|
--stringparam section.autolabel 1
|
|
--stringparam section.label.includes.component.label 1
|
|
--stringparam html.stylesheet ws.css
|
|
--nonet
|
|
--output ${_output}
|
|
${_STYLESHEET}
|
|
${_source}
|
|
COMMAND chmod
|
|
-R og+rX ${_OUTDIR}
|
|
DEPENDS
|
|
${_validated}
|
|
${${_xmlsources}}
|
|
${${_gfxsources}}
|
|
)
|
|
ENDMACRO(XML2HTML)
|
|
|
|
|
|
#XML2PDF(
|
|
# user-guide-a4.fo or user-guide-us.fo
|
|
# WSUG_SOURCE
|
|
# custom_layer_pdf.xsl
|
|
# A4 or letter
|
|
#)
|
|
MACRO(XML2PDF _output _sources _stylesheet _paper)
|
|
# FIXME: How do I extract the first element of a variable containing a
|
|
# list of values? Isn't there a "cleaner" solution?
|
|
# Oh, and I have no idea why I can't directly use _source instead of
|
|
# having to introduce _tmpsource.
|
|
FOREACH(_tmpsource ${${_sources}})
|
|
set(_source ${_tmpsource})
|
|
BREAK()
|
|
ENDFOREACH()
|
|
|
|
ADD_CUSTOM_COMMAND(
|
|
OUTPUT
|
|
${_output}
|
|
COMMAND ${XSLTPROC_EXECUTABLE}
|
|
--path "${CMAKE_CURRENT_SOURCE_DIR}:${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_BINARY_DIR}/wsluarm_src"
|
|
--stringparam paper.type ${_paper}
|
|
--nonet
|
|
--output ${_output}.fo
|
|
${_stylesheet}
|
|
${_source}
|
|
# FIXME: The images for tip, warning and note (and maybe more of those)
|
|
# are not found by fop. I have no idea why "system" images don't work
|
|
# the way other images work.
|
|
COMMAND ${FOP_EXECUTABLE}
|
|
${_output}.fo
|
|
${_output}
|
|
DEPENDS
|
|
${${_sources}}
|
|
${_stylesheet}
|
|
)
|
|
ENDMACRO(XML2PDF)
|
|
|