diff options
-rw-r--r-- | CMakeLists.txt | 6 | ||||
-rw-r--r-- | CMakeOptions.txt | 1 | ||||
-rw-r--r-- | cmake/modules/FindASCIIDOC.cmake | 131 | ||||
-rw-r--r-- | cmake/modules/FindFOP.cmake | 8 | ||||
-rw-r--r-- | cmake/modules/FindHHC.cmake | 30 | ||||
-rw-r--r-- | cmake/modules/FindXSLTPROC.cmake | 71 | ||||
-rw-r--r-- | docbook/CMakeLists.txt | 102 | ||||
-rw-r--r-- | tools/Makefile.am | 2 | ||||
-rw-r--r-- | tools/hhc.cmd.in | 6 | ||||
-rw-r--r-- | tools/runa2x.sh | 50 |
10 files changed, 312 insertions, 95 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index ebba9186e4..842f6a8ead 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -870,11 +870,7 @@ add_subdirectory( asn1 EXCLUDE_FROM_ALL ) add_subdirectory( capchild ) add_subdirectory( caputils ) add_subdirectory( codecs ) -if (NOT WIN32) - # Some work will be required for Windows. See the notes at the top - # of FindASCIIDOC.cmake. - add_subdirectory( docbook ) -endif() +add_subdirectory( docbook ) add_subdirectory( epan ) add_subdirectory( tools/lemon ) add_subdirectory( ui ) diff --git a/CMakeOptions.txt b/CMakeOptions.txt index cfb0fda2ec..c3c5983fef 100644 --- a/CMakeOptions.txt +++ b/CMakeOptions.txt @@ -50,6 +50,7 @@ option(ENABLE_PLUGINS "Build with plugins" ON) option(ENABLE_EXTCAP "Build with extcap hooks" ON) option(ENABLE_HTML_GUIDES "Build HTML User & Developer Guides" OFF) option(ENABLE_PDF_GUIDES "Build PDF User & Developer Guides" OFF) +option(ENABLE_CHM_GUIDES "Build HTML Help User & Developer Guides" OFF) option(ENABLE_PCAP_NG_DEFAULT "Enable pcap-ng as default file format" ON) option(ENABLE_ADNS "Build with adns support" ON) diff --git a/cmake/modules/FindASCIIDOC.cmake b/cmake/modules/FindASCIIDOC.cmake index d957aec51c..a857188af2 100644 --- a/cmake/modules/FindASCIIDOC.cmake +++ b/cmake/modules/FindASCIIDOC.cmake @@ -3,28 +3,52 @@ # This module looks for some usual Unix commands. # -# XXX Trying to get this to work with Cygwin is going to be problematic. -# /usr/bin/a2x is a symlink to /usr/bin/a2x.py. I.e. we can't just call -# directly from Windows. -# Possible solutions: -# - Call a2x.py instead. -# - Wait for someone to create Chocolatey AsciiDoc + DocBook packages - INCLUDE(FindCygwin) FIND_PROGRAM(A2X_EXECUTABLE - NAMES - a2x - PATHS - ${CYGWIN_INSTALL_PATH}/bin - /bin - /usr/bin - /usr/local/bin - /sbin + NAMES + a2x + PATHS + ${CYGWIN_INSTALL_PATH}/bin + /bin + /usr/bin + /usr/local/bin + /sbin ) -# Make sure we don't get language specific quotes -set( A2X_EXECUTABLE LC_ALL=C ${A2X_EXECUTABLE} ) +if (WIN32 AND NOT "${CYGWIN_INSTALL_PATH}" STREQUAL "" AND ${A2X_EXECUTABLE} MATCHES "${CYGWIN_INSTALL_PATH}") + FIND_PROGRAM(CYGPATH_EXECUTABLE + NAMES cygpath + PATHS ${CYGWIN_INSTALL_PATH}/bin + ) + + MACRO( TO_A2X_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_A2X_COMPATIBLE_PATH( ${CMAKE_SOURCE_DIR}/tools/runa2x.sh RUNA2X_CYGWIN_PATH ) + + # It's difficult or impossible to call /usr/bin/a2x directly from + # Windows because: + # - /usr/bin/a2x, which is a symlink to /usr/bin/a2x.py. + # - We need to set environment variables (LC_ALL, PATH, TZ, PYTHONHOME) + # so we use a wrapper script. + set( A2X_EXECUTABLE ${SH_EXECUTABLE} ${RUNA2X_CYGWIN_PATH} ) +else() + # Make sure we don't get language specific quotes + set( A2X_EXECUTABLE LC_ALL=C TZ=UTC ${A2X_EXECUTABLE} ) + + MACRO( TO_A2X_COMPATIBLE_PATH _cmake_path _result ) + set( ${_result} ${_cmake_path} ) + ENDMACRO() +endif() # Handle the QUIETLY and REQUIRED arguments and set ASCIIDOC_FOUND to TRUE if # all listed variables are TRUE @@ -33,6 +57,48 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(ASCIIDOC DEFAULT_MSG A2X_EXECUTABLE) MARK_AS_ADVANCED(A2X_EXECUTABLE) +TO_A2X_COMPATIBLE_PATH( ${CMAKE_CURRENT_BINARY_DIR} _a2x_current_binary_dir ) + +MACRO( ASCIIDOC2DOCBOOK _asciidocsource _conf_files ) + GET_FILENAME_COMPONENT( _source_base_name ${_asciidocsource} NAME_WE ) + set( A2X_HTML_OPTS --stylesheet=ws.css ) + set( _output_xml ${_source_base_name}.xml ) + set( _output_dbk ${_source_base_name}.dbk ) + + foreach(_conf_file ${_conf_files}) + TO_A2X_COMPATIBLE_PATH ( ${CMAKE_CURRENT_SOURCE_DIR}/${_conf_file} _a2x_conf_file ) + set( _conf_opts_list ${_conf_opts_list} --conf-file=${_a2x_conf_file}) + endforeach() + string( REPLACE ";" " " _conf_opts "${_conf_opts_list}") + + foreach(_conf_file ${_conf_files}) + set( _conf_deps ${_conf_deps} ${CMAKE_CURRENT_SOURCE_DIR}/${_conf_file}) + endforeach() + + TO_A2X_COMPATIBLE_PATH ( ${CMAKE_CURRENT_SOURCE_DIR}/${_asciidocsource} _a2x_asciidocsource ) + + ADD_CUSTOM_COMMAND( + OUTPUT + ${_output_xml} + # XXX - Output to a specific directory, e.g. wsdg_generated_src + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMAND ${A2X_EXECUTABLE} + --verbose + --attribute=build_dir=${_a2x_current_binary_dir} + --attribute=docinfo + --destination-dir=${_a2x_current_binary_dir} + --asciidoc-opts=${_conf_opts} + --no-xmllint + --format=docbook + --fop + ${A2X_HTML_OPTS} + ${_a2x_asciidocsource} + DEPENDS + ${CMAKE_CURRENT_SOURCE_DIR}/${_asciidocsource} + ${_conf_deps} + ) +ENDMACRO() + MACRO( ASCIIDOC2HTML _output _asciidocsource _conf_files ) GET_FILENAME_COMPONENT( _source_base_name ${_asciidocsource} NAME_WE ) set( A2X_HTML_OPTS --stylesheet=ws.css ) @@ -41,7 +107,8 @@ MACRO( ASCIIDOC2HTML _output _asciidocsource _conf_files ) SET( _conf_opts_list ) FOREACH( _conf_file ${_conf_files} ) - SET( _conf_opts_list ${_conf_opts_list} --conf-file=${CMAKE_CURRENT_SOURCE_DIR}/${_conf_file} ) + TO_A2X_COMPATIBLE_PATH ( ${CMAKE_CURRENT_SOURCE_DIR}/${_conf_file} _a2x_conf_file ) + SET( _conf_opts_list ${_conf_opts_list} --conf-file=${_a2x_conf_file}) ENDFOREACH() STRING( REPLACE ";" " " _conf_opts "${_conf_opts_list}" ) @@ -50,17 +117,19 @@ MACRO( ASCIIDOC2HTML _output _asciidocsource _conf_files ) SET( _conf_deps ${_conf_deps} ${CMAKE_CURRENT_SOURCE_DIR}/${_conf_file} ) ENDFOREACH() + TO_A2X_COMPATIBLE_PATH ( ${_asciidocsource} _a2x_asciidocsource ) + ADD_CUSTOM_COMMAND( OUTPUT ${_output} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND ${A2X_EXECUTABLE} --format=xhtml - --destination-dir=${CMAKE_CURRENT_BINARY_DIR} + --destination-dir=${_a2x_current_binary_dir} --asciidoc-opts=${_conf_opts} --fop ${A2X_HTML_OPTS} - ${_asciidocsource} + ${_a2x_asciidocsource} # Replacing file with itself will fail # COMMAND ${CMAKE_COMMAND} -E rename # ${CMAKE_CURRENT_BINARY_DIR}/${_source_base_name}.html @@ -84,7 +153,8 @@ MACRO( ASCIIDOC2TXT _output _asciidocsource _conf_files ) SET( _conf_opts_list ) FOREACH( _conf_file ${_conf_files} ) - SET( _conf_opts_list ${_conf_opts_list} --conf-file=${CMAKE_CURRENT_SOURCE_DIR}/${_conf_file} ) + TO_A2X_COMPATIBLE_PATH ( ${CMAKE_CURRENT_SOURCE_DIR}/${_conf_file} _a2x_conf_file ) + SET( _conf_opts_list ${_conf_opts_list} --conf-file=${_a2x_conf_file}) ENDFOREACH() STRING( REPLACE ";" " " _conf_opts "${_conf_opts_list}" ) @@ -93,18 +163,20 @@ MACRO( ASCIIDOC2TXT _output _asciidocsource _conf_files ) SET( _conf_deps ${_conf_deps} ${CMAKE_CURRENT_SOURCE_DIR}/${_conf_file} ) ENDFOREACH() + TO_A2X_COMPATIBLE_PATH ( ${_asciidocsource} _a2x_asciidocsource ) + ADD_CUSTOM_COMMAND( OUTPUT ${_output} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMAND TZ=UTC ${A2X_EXECUTABLE} + COMMAND ${A2X_EXECUTABLE} --format=text - --destination-dir=${CMAKE_CURRENT_BINARY_DIR} + --destination-dir=${_a2x_current_binary_dir} --asciidoc-opts=${_conf_opts} --fop ${A2X_TEXT_OPTS} - --xsltproc-opts '--stringparam generate.toc "article nop"' - ${_asciidocsource} + --xsltproc-opts "--stringparam generate.toc \"article nop\"" + ${_a2x_asciidocsource} COMMAND ${CMAKE_COMMAND} -E rename ${CMAKE_CURRENT_BINARY_DIR}/${_source_base_name}.text ${CMAKE_CURRENT_BINARY_DIR}/${_output} @@ -124,7 +196,8 @@ MACRO( ASCIIDOC2PDF _output _asciidocsource _conf_files _paper ) SET( _conf_opts_list ) FOREACH( _conf_file ${_conf_files} ) - SET( _conf_opts_list ${_conf_opts_list} --conf-file=${CMAKE_CURRENT_SOURCE_DIR}/${_conf_file} ) + TO_A2X_COMPATIBLE_PATH ( ${CMAKE_CURRENT_SOURCE_DIR}/${_conf_file} _a2x_conf_file ) + SET( _conf_opts_list ${_conf_opts_list} --conf-file=${_a2x_conf_file}) ENDFOREACH() STRING( REPLACE ";" " " _conf_opts "${_conf_opts_list}") @@ -133,19 +206,21 @@ MACRO( ASCIIDOC2PDF _output _asciidocsource _conf_files _paper ) SET( _conf_deps ${_conf_deps} ${CMAKE_CURRENT_SOURCE_DIR}/${_conf_file} ) ENDFOREACH() + TO_A2X_COMPATIBLE_PATH ( ${_asciidocsource} _a2x_asciidocsource ) + ADD_CUSTOM_COMMAND( OUTPUT ${_output} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND ${A2X_EXECUTABLE} --format=pdf - --destination-dir=${CMAKE_CURRENT_BINARY_DIR} + --destination-dir=${_a2x_current_binary_dir} --asciidoc-opts=${_conf_opts} --fop ${A2X_HTML_OPTS} --xsltproc-opts "--stringparam paper.type ${_paper} --nonet" --xsl-file=custom_layer_pdf.xsl - ${_asciidocsource} + ${_a2x_asciidocsource} COMMAND ${CMAKE_COMMAND} -E rename ${CMAKE_CURRENT_BINARY_DIR}/${_source_base_name}.pdf ${CMAKE_CURRENT_BINARY_DIR}/${_output} diff --git a/cmake/modules/FindFOP.cmake b/cmake/modules/FindFOP.cmake index 1b654ab6e9..31127687fc 100644 --- a/cmake/modules/FindFOP.cmake +++ b/cmake/modules/FindFOP.cmake @@ -5,6 +5,10 @@ INCLUDE(FindCygwin) +INCLUDE(FindWSWinLibs) +FindWSWinLibs("fop-1.1" "FOP11_HINTS") +FindWSWinLibs("fop-1.0" "FOP10_HINTS") + FIND_PROGRAM(FOP_EXECUTABLE NAMES fop @@ -14,6 +18,9 @@ FIND_PROGRAM(FOP_EXECUTABLE /usr/bin /usr/local/bin /sbin + HINTS + ${FOP11_HINTS} + ${FOP10_HINTS} ) INCLUDE(FindPackageHandleStandardArgs) @@ -24,4 +31,3 @@ IF(${FOP_EXECUTABLE}) SET(FOP_EXECUTABLE FOP_OPTS=${FOP_OPTS} JAVA_OPTS=${FOP_OPTS} ${FOP_EXECUTABLE}) ENDIF() MARK_AS_ADVANCED(FOP_EXECUTABLE) - diff --git a/cmake/modules/FindHHC.cmake b/cmake/modules/FindHHC.cmake new file mode 100644 index 0000000000..427002f831 --- /dev/null +++ b/cmake/modules/FindHHC.cmake @@ -0,0 +1,30 @@ +# +# - Find the Microsoft HTML Help compiler. +# Sets HHC_EXECUTABLE to the path to hhc.exe +# Sets HHC_WRAPPER to a wrapper script that ignores hhc.exe's return value. +# + +FIND_PROGRAM(HHC_EXECUTABLE + NAMES + hhc + HINTS + $ENV{PROGRAMFILES}/HTML Help Workshop +) + +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(HHC DEFAULT_MSG HHC_EXECUTABLE) + +MARK_AS_ADVANCED(HHC_EXECUTABLE) + +if(WIN32) + # hhc.exe returns 1 on success. Create a wrapper script that ignores + # this. + set(HHC_WRAPPER ${CMAKE_BINARY_DIR}/tools/hhc.cmd) + file(TO_NATIVE_PATH "${HHC_EXECUTABLE}" HHC_EXECUTABLE_NATIVE_WINDOWS_PATH) + configure_file(${CMAKE_SOURCE_DIR}/tools/hhc.cmd.in + ${HHC_WRAPPER} + NEWLINE_STYLE WIN32 + ) + FIND_PACKAGE_HANDLE_STANDARD_ARGS(HHC DEFAULT_MSG HHC_WRAPPER) + MARK_AS_ADVANCED(HHC_WRAPPER) +endif() diff --git a/cmake/modules/FindXSLTPROC.cmake b/cmake/modules/FindXSLTPROC.cmake index c780dcd5d8..99f860dfca 100644 --- a/cmake/modules/FindXSLTPROC.cmake +++ b/cmake/modules/FindXSLTPROC.cmake @@ -23,7 +23,31 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(XSLTPROC DEFAULT_MSG XSLTPROC_EXECUTABLE) MARK_AS_ADVANCED(XSLTPROC_EXECUTABLE) -# Translate xml to html +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 + ) + +#set (WSUG_XSLTPROC_ARGS +# --stringparam admon.graphics.path wsug_graphics/ +# +#WSDG_XSLTPROC_ARGS = \ +# --stringparam admon.graphics.path wsdg_graphics/ +# +#SINGLE_XSLTPROC_ARGS = \ +# --nonet http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl +# +#CHUNKED_XSLTPROC_ARGS = \ +# --nonet http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl +# +#HTMLHELP_XSLTPROC_ARGS = \ +# + +# Translate XML to HTML #XML2HTML( # wsug or wsdg # single-page or chunked @@ -79,14 +103,8 @@ MACRO(XML2HTML _guide _mode _xmlsources _gfxsources) COMMAND ${XSLTPROC_EXECUTABLE} --path "${CMAKE_CURRENT_SOURCE_DIR}:${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_BINARY_DIR}/wsluarm_src" --stringparam base.dir ${_basedir}/ - --stringparam use.id.as.filename 1 - --stringparam admon.graphics 1 + ${_common_xsltproc_args} --stringparam admon.graphics.path ${_gfxdir}/ - --stringparam admon.graphics.extension .svg - --stringparam section.autolabel 1 - --stringparam section.label.includes.component.label 1 - --stringparam html.stylesheet ws.css - --nonet ${_modeparams} ${_STYLESHEET} ${_source} @@ -99,7 +117,7 @@ MACRO(XML2HTML _guide _mode _xmlsources _gfxsources) ) ENDMACRO(XML2HTML) - +# Translate XML to FO to PDF #XML2PDF( # user-guide-a4.fo or user-guide-us.fo # WSUG_SOURCE @@ -135,3 +153,38 @@ MACRO(XML2PDF _output _sources _stylesheet _paper) ${_stylesheet} ) ENDMACRO(XML2PDF) + +# Translate XML to HHP +#XML2HHP( +# wsug or wsdg +# user-guide.xml or developer-guide.xml +#) +MACRO(XML2HHP _guide _docbooksource) + 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 ) + + SET(_gfxdir ${_guide}_graphics) + SET(_basedir ${_guide}_chm) + ADD_CUSTOM_COMMAND( + OUTPUT + ${_output_hhp} + COMMAND ${CMAKE_COMMAND} -E make_directory ${_basedir} + COMMAND ${CMAKE_COMMAND} -E make_directory ${_basedir}/${_gfxdir} + COMMAND ${CMAKE_COMMAND} -E copy_directory ${_gfxdir} ${_basedir}/${_gfxdir} + COMMAND ${CMAKE_COMMAND} -E copy_directory common_graphics ${_basedir} + COMMAND ${XSLTPROC_EXECUTABLE} + --path "${CMAKE_CURRENT_SOURCE_DIR}:${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_BINARY_DIR}/wsluarm_src" + --stringparam base.dir ${_basedir}/ + --stringparam htmlhelp.chm ${_output_chm} + --stringparam htmlhelp.hhp ${_output_hhp} + --stringparam htmlhelp.hhc ${_output_toc_hhc} + ${_common_xsltproc_args} + --stringparam admon.graphics.path ${_gfxdir}/ + --nonet custom_layer_chm.xsl + ${_docbooksource} + DEPENDS + ${_docbooksource} + ) +ENDMACRO(XML2HHP) diff --git a/docbook/CMakeLists.txt b/docbook/CMakeLists.txt index be3fdba52d..6bc3d64772 100644 --- a/docbook/CMakeLists.txt +++ b/docbook/CMakeLists.txt @@ -23,8 +23,29 @@ find_package( FOP ) # Call before XSLTPROC find_package( LYNX ) find_package( XSLTPROC ) find_package( XMLLINT ) +find_package( HHC ) + find_package( ASCIIDOC ) +if(WIN32) + MACRO( HHP2CHM _hhpsource ) + GET_FILENAME_COMPONENT( _source_base_name ${_hhpsource} NAME_WE ) + + ADD_CUSTOM_COMMAND( + OUTPUT ${_output_chm} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + # hhc.exe returns 1 on success. + COMMAND ${HHC_WRAPPER} ${_hhpsource} + DEPENDS + ${_hhpsource} + ) + ENDMACRO() +else() + MACRO( HHP2CHM _hhpsource ) + # Dummy. + ENDMACRO() +endif() + set(COMMON_GRAPHICS common_graphics/note.svg common_graphics/tip.svg @@ -222,43 +243,6 @@ add_custom_command( ${CMAKE_CURRENT_BINARY_DIR}/ws.css ) -MACRO( ASCIIDOC2DOCBOOK _asciidocsource _conf_files ) - GET_FILENAME_COMPONENT( _source_base_name ${_asciidocsource} NAME_WE ) - set( A2X_HTML_OPTS --stylesheet=ws.css ) - set( _output_xml ${_source_base_name}.xml ) - set( _output_dbk ${_source_base_name}.dbk ) - - foreach(_conf_file ${_conf_files}) - set( _conf_opts_list ${_conf_opts_list} --conf-file=${CMAKE_CURRENT_SOURCE_DIR}/${_conf_file}) - endforeach() - string( REPLACE ";" " " _conf_opts "${_conf_opts_list}") - - foreach(_conf_file ${_conf_files}) - set( _conf_deps ${_conf_deps} ${CMAKE_CURRENT_SOURCE_DIR}/${_conf_file}) - endforeach() - - ADD_CUSTOM_COMMAND( - OUTPUT - ${_output_xml} - # XXX - Output to a specific directory, e.g. wsdg_generated_src - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMAND ${A2X_EXECUTABLE} - --verbose - --attribute=build_dir=${CMAKE_CURRENT_BINARY_DIR} - --attribute=docinfo - --destination-dir=${CMAKE_CURRENT_BINARY_DIR} - --asciidoc-opts=${_conf_opts} - --no-xmllint - --format=docbook - --fop - ${A2X_HTML_OPTS} - ${CMAKE_CURRENT_SOURCE_DIR}/${_asciidocsource} - DEPENDS - ${CMAKE_CURRENT_SOURCE_DIR}/${_asciidocsource} - ${_conf_deps} - ) -ENDMACRO() - ASCIIDOC2DOCBOOK( developer-guide.asciidoc "${ASCIIDOC_CONF_FILES}" ) ASCIIDOC2DOCBOOK( user-guide.asciidoc "${ASCIIDOC_CONF_FILES}" ) @@ -289,7 +273,7 @@ set(WSLUA_MODULES ADD_CUSTOM_COMMAND( OUTPUT git_version.xml - COMMAND ${SH} + COMMAND ${SH_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/check_git_version.sh DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/check_git_version.sh @@ -303,12 +287,11 @@ if(ENABLE_PDF_GUIDES) set(WSUG_PDF_OUTPUT user-guide-a4.pdf user-guide-us.pdf) endif() -add_custom_target( - user_guides - DEPENDS - ${WSUG_HTML_OUTPUT} - ${WSUG_PDF_OUTPUT} -) +if(ENABLE_CHM_GUIDES) + set(WSUG_CHM_OUTPUT user-guide.chm) + XML2HHP(wsug user-guide.xml) + HHP2CHM(user-guide.hhp) +endif() VALIDATE_XML( wsug.validated @@ -355,13 +338,11 @@ if(ENABLE_PDF_GUIDES) set(WSDG_PDF_OUTPUT developer-guide-a4.pdf developer-guide-us.pdf) endif() -add_custom_target( - developer_guides - DEPENDS - wsluarm - ${WSDG_HTML_OUTPUT} - ${WSDG_PDF_OUTPUT} -) +if(ENABLE_CHM_GUIDES) + set(WSDG_CHM_OUTPUT developer-guide.chm) + XML2HHP(wsdg developer-guide.xml) + HHP2CHM(developer-guide.hhp) +endif() VALIDATE_XML( wsdg.validated @@ -396,7 +377,24 @@ XML2PDF( letter ) -if(ENABLE_HTML_GUIDES OR ENABLE_PDF_GUIDES) +if(ENABLE_HTML_GUIDES OR ENABLE_PDF_GUIDES OR ENABLE_CHM_GUIDES) + add_custom_target( + user_guides + DEPENDS + ${WSUG_HTML_OUTPUT} + ${WSUG_PDF_OUTPUT} + ${WSUG_CHM_OUTPUT} + ) + + add_custom_target( + developer_guides + DEPENDS + wsluarm + ${WSDG_HTML_OUTPUT} + ${WSDG_PDF_OUTPUT} + ${WSDG_CHM_OUTPUT} + ) + add_custom_target( all_guides ALL ) add_dependencies ( all_guides user_guides developer_guides ) endif() diff --git a/tools/Makefile.am b/tools/Makefile.am index 3ba3d06878..13a983cfc7 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -138,6 +138,7 @@ EXTRA_DIST = \ gen-bugnote \ git-compare-abis.sh \ git-export-release.sh \ + hhc.cmd.in \ html2text.py \ idl2deb \ idl2wrs \ @@ -168,6 +169,7 @@ EXTRA_DIST = \ process-x11-xcb.pl \ randpkt-test.sh \ rdps.py \ + runa2x.sh \ runlex.sh \ setuid-root.pl.in \ test-common.sh \ diff --git a/tools/hhc.cmd.in b/tools/hhc.cmd.in new file mode 100644 index 0000000000..3cb4e36315 --- /dev/null +++ b/tools/hhc.cmd.in @@ -0,0 +1,6 @@ +@echo off +"@HHC_EXECUTABLE_NATIVE_WINDOWS_PATH@" %* +echo hhc.exe returned %errorlevel% + +cmd /c exit 0 +echo We are returning %errorlevel% diff --git a/tools/runa2x.sh b/tools/runa2x.sh new file mode 100644 index 0000000000..eb0687d1e6 --- /dev/null +++ b/tools/runa2x.sh @@ -0,0 +1,50 @@ +#!/bin/sh -xv + +# +# runa2x.sh +# Wrapper script for running Cygwin's a2x via CMake. +# +# Wireshark - Network traffic analyzer +# By Gerald Combs <gerald@wireshark.org> +# Copyright 2015 Gerald Combs +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# + +# Bugs: +# - This script shouldn't exist. Unfortunately there doesn't appear +# to be a way to construct a Windows command line that can set the +# environment variables below, then run /usr/bin/a2x (which is a symlink). + +if [ `uname -o` != "Cygwin" ] ; then + >&2 echo "We're trying to limit the scope of this insanity to CMake + Cygwin" + exit 1 +fi + +LC_ALL=C +export LC_ALL + +TZ=UTC +export TZ + +PATH=/usr/bin +export PATH + +PYTHONHOME=/ +export PYTHONHOME + +echo "running a2x with args $@" + +a2x "$@" |