aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJörg Mayer <jmayer@loplof.de>2010-02-25 12:30:44 +0000
committerJörg Mayer <jmayer@loplof.de>2010-02-25 12:30:44 +0000
commit914983a0dce85c43d8bd8e7c396d3a9c1d44ff63 (patch)
tree4f012ed120f8cd9530dcc035be8ee6552f952997
parent480582e8e91c409ec8a729ff6c79a2814c50273d (diff)
Almost working out-of-tree builds for the documentation,
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
-rw-r--r--CMakeLists.txt11
-rw-r--r--cmake/modules/FindFOP.cmake4
-rw-r--r--cmake/modules/FindPOD.cmake2
-rw-r--r--cmake/modules/FindXMLLINT.cmake25
-rw-r--r--cmake/modules/FindXSLTPROC.cmake150
-rw-r--r--docbook/CMakeLists.txt152
6 files changed, 182 insertions, 162 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5f59791808..ff34f23a9b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -24,6 +24,7 @@
project(Wireshark C)
cmake_minimum_required(VERSION 2.6)
+set(CMAKE_BACKWARDS_COMPATIBILITY 2.6)
#Where to find local cmake scripts
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
@@ -69,10 +70,11 @@ option(AUTOGEN_pidl "Autogenerate pidl dissectors" OFF)
option(DISABLE_WERROR "Do not treat Warnings as errors" OFF)
option(ENABLE_EXTRA_GCC_CHECKS "Do additional -W checks in GCC (disables -Werror)" OFF)
option(ENABLE_AIRPCAP "Enable Airpcap support" ON)
+# todo
option(ENABLE_STATIC "Build a static version of Wireshark (not yet working)" OFF)
option(ENABLE_PLUGINS "Build with plugins" ON)
# todo
-option(ENABLE_GUIDES "Build Guides (not yet implemented)" OFF)
+option(ENABLE_GUIDES "Build Guides" ON)
option(ENABLE_ADNS "Build with adns support" ON)
option(ENABLE_PCRE "Build with pcre support" ON)
@@ -355,9 +357,12 @@ add_subdirectory( wiretap )
add_subdirectory( wsutil )
if(ENABLE_GUIDES)
- add_subdirectory( docbook )
+# FIXME: Disabling the build via option currently doesn't work
+# add_subdirectory( docbook )
endif()
+find_package(POD)
+
#Platform specific
if(UNIX)
set(WS_VAR_IMPORT "extern")
@@ -805,8 +810,6 @@ ADD_CUSTOM_COMMAND(
tshark
)
-find_package(POD)
-
pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/capinfos 1 )
pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/dumpcap 1 )
pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/editcap 1 )
diff --git a/cmake/modules/FindFOP.cmake b/cmake/modules/FindFOP.cmake
index 1ec136149b..6383ad829d 100644
--- a/cmake/modules/FindFOP.cmake
+++ b/cmake/modules/FindFOP.cmake
@@ -21,5 +21,9 @@ FIND_PROGRAM(FOP_EXECUTABLE
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(FOP DEFAULT_MSG FOP_EXECUTABLE)
+IF(${FOP_EXECUTABLE})
+ SET(FOP_OPTS -Xmx256m)
+ SET(FOP_EXECUTABLE FOP_OPTS=${FOP_OPTS} JAVA_OPTS=${FOP_OPTS} ${FOP_EXECUTABLE})
+ENDIF()
MARK_AS_ADVANCED(FOP_EXECUTABLE)
diff --git a/cmake/modules/FindPOD.cmake b/cmake/modules/FindPOD.cmake
index 63e3112fad..59d8d81b3c 100644
--- a/cmake/modules/FindPOD.cmake
+++ b/cmake/modules/FindPOD.cmake
@@ -32,7 +32,7 @@ FIND_PROGRAM(POD2HTML_EXECUTABLE
# handle the QUIETLY and REQUIRED arguments and set POD2HTML_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(POD2HTML DEFAULT_MSG POD2MAN_EXECUTABLE POD2HTML_EXECUTABLE)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(POD DEFAULT_MSG POD2MAN_EXECUTABLE POD2HTML_EXECUTABLE)
MARK_AS_ADVANCED(
POD2MAN_EXECUTABLE
diff --git a/cmake/modules/FindXMLLINT.cmake b/cmake/modules/FindXMLLINT.cmake
index f5ac6459e2..583868050a 100644
--- a/cmake/modules/FindXMLLINT.cmake
+++ b/cmake/modules/FindXMLLINT.cmake
@@ -25,24 +25,25 @@ MARK_AS_ADVANCED(XMLLINT_EXECUTABLE)
# Validate XML
MACRO(VALIDATE_XML _validated _sources)
- message(STATUS "Source(s): ${${_sources}}")
# FIXME: How do I extract the first element of a variable containing a
# list of values? Isn't there a "cleaner" solution?
- FOREACH(_source ${${_sources}})
+ # 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
- ${CMAKE_CURRENT_BINARY_DIR}/${_validated}
- COMMAND ${XMLLINT_EXECUTABLE}
+ OUTPUT
+ ${_validated}
+ COMMAND ${XMLLINT_EXECUTABLE}
+ --path "${CMAKE_CURRENT_SOURCE_DIR}:${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_BINARY_DIR}/wsluarm_src"
--valid
--noout
- --path "${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_SOURCE_DIR}"
- ${_source}
- COMMAND touch
- ${CMAKE_CURRENT_BINARY_DIR}/${_validated}
- DEPENDS
- ${_source}
- svn_version.xml
+ ${_source}
+ COMMAND touch
+ ${_validated}
+ DEPENDS
+ ${${_sources}}
)
ENDMACRO(VALIDATE_XML)
diff --git a/cmake/modules/FindXSLTPROC.cmake b/cmake/modules/FindXSLTPROC.cmake
index 1d18832da0..fbbb200ed4 100644
--- a/cmake/modules/FindXSLTPROC.cmake
+++ b/cmake/modules/FindXSLTPROC.cmake
@@ -25,91 +25,109 @@ 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
-# single-page
-# wsug_html
-# WSUG_SOURCE
-# WSUG_GFX_SOURCE
+# wsug.validated
+# wsug_html/user-guide.html or wsub_html/index.html
+# single-page or chunked
+# WSUG_FILES
+# WSUG_GRAPHICS
#)
-
-# Translate xml to html
MACRO(XML2HTML _validated _output _mode _xmlsources _gfxsources)
- MESSAGE(STATUS "XML source(s): ${${_xmlsources}}")
- MESSAGE(STATUS "GFX source(s): ${${_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}
- COMMAND
- cmake -E make_directory ${_OUTDIR}
- COMMAND
- cmake -E copy ${${_gfxsources}} ${_OUTDIR}
- COMMAND
- cmake -E copy ws.css ${_OUTDIR}
+ # 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}}
)
-# mkdir -p wsug_html/wsug_graphics/toolbar
-# cp wsug_graphics/*.* wsug_html/wsug_graphics
-# cp wsug_graphics/toolbar/* wsug_html/wsug_graphics/toolbar
-# cp ws.css wsug_html
-
-# mkdir -p wsug_html_chunked/wsug_graphics/toolbar
-# cp wsug_graphics/*.* wsug_html_chunked/wsug_graphics
-# cp wsug_graphics/toolbar/* wsug_html_chunked/wsug_graphics/toolbar
-# cp ws.css wsug_html_chunked
ENDMACRO(XML2HTML)
-#wsug_html/user-guide.html: $(WSUG_SOURCE)
-# @ echo --- WSUG - HTML SINGLE PAGE ---
-# mkdir -p wsug_html/wsug_graphics/toolbar
-# cp wsug_graphics/*.* wsug_html/wsug_graphics
-# cp wsug_graphics/toolbar/* wsug_html/wsug_graphics/toolbar
-# cp ws.css wsug_html
-# $(XSLTPROC) --stringparam base.dir wsug_html/ --stringparam use.id.as.filename 1 --stringparam admon.graphics 1 --stringparam admon.graphics.path wsug_graphics/ --stringparam section.autolabel 1 --stringparam section.label.includes.component.label 1 --stringparam html.stylesheet ws.css --nonet http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl $< > $@
-# -chmod -R og+rX wsug_html
-#
-
-#wsug_html_chunked/index.html: $(WSUG_SOURCE)
-# @ echo --- WSUG - HTML CHUNKED ---
-# mkdir -p wsug_html_chunked/wsug_graphics/toolbar
-# cp wsug_graphics/*.* wsug_html_chunked/wsug_graphics
-# cp wsug_graphics/toolbar/* wsug_html_chunked/wsug_graphics/toolbar
-# cp ws.css wsug_html_chunked
-# $(XSLTPROC) --stringparam base.dir wsug_html_chunked/ --stringparam use.id.as.filename 1 --stringparam admon.graphics 1 --stringparam admon.graphics.path wsug_graphics/ --stringparam section.autolabel 1 --stringparam section.label.includes.component.label 1 --stringparam html.stylesheet ws.css --nonet http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl $<
-# -chmod -R og+rX wsug_html_chunked
#XML2PDF(
-# WSUG_SOURCE
-# custom_layer_pdf.xsl
-# A4
-#)
-#
-#XML2PDF(
-# WSUG_SOURCE
-# custom_layer_pdf.xsl
-# letter
+# 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()
-#user-guide-us.fo: $(WSUG_SOURCE) custom_layer_pdf.xsl
-#ifdef FOP
-# @ echo --- WSUG - PDF US PAPER ---
-# $(XSLTPROC) --stringparam paper.type letter --nonet custom_layer_pdf.xsl $< > $@
-#endif
-#
-## create pdf file (through XSL-FO), portrait pages on A4 paper
-## you will get lot's of errors, but that's ok
-#user-guide-a4.fo: $(WSUG_SOURCE) custom_layer_pdf.xsl
-#ifdef FOP
-# @ echo --- WSUG - PDF A4 PAPER ---
-# $(XSLTPROC) --stringparam paper.type A4 --nonet custom_layer_pdf.xsl $< > $@
-#endif
+ 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)
diff --git a/docbook/CMakeLists.txt b/docbook/CMakeLists.txt
index 4d549027c2..d46f97beca 100644
--- a/docbook/CMakeLists.txt
+++ b/docbook/CMakeLists.txt
@@ -233,7 +233,7 @@ set(WSLUA_MODULES
${CMAKE_SOURCE_DIR}/epan/wslua/wslua_util.c
)
-find_package( FOP )
+find_package( FOP ) # Call before XSLTPROC
find_package( LYNX )
find_package( XSLTPROC )
find_package( XMLLINT )
@@ -248,13 +248,13 @@ ADD_CUSTOM_COMMAND(
)
add_custom_target(
- guides ALL
+ user_guides ALL
DEPENDS
- wsug.validated
-# wsug_html_chunked
-# user-guide.html
-# user-guide-a4.pdf
-# user-guide-us.pdf
+ wsluarm
+ wsug_html_chunked/index.html
+ wsug_html/user-guide.html
+ user-guide-a4.pdf
+ user-guide-us.pdf
)
VALIDATE_XML(
@@ -266,43 +266,84 @@ XML2HTML(
wsug.validated
wsug_html/user-guide.html
single-page
- WSUG_FILES
+ WSUG_SOURCE
WSUG_GRAPHICS
)
-#XML2HTML(
-# wsug.validated
-# wsug_html_chunked/index.html
-# chunked
-# wsug_html_chunked
-# WSUG_FILES
-# WSUG_GRAPHICS
-#)
-#
-#XML2PDF(
-# WSUG_SOURCE
-# custom_layer_pdf.xsl
-# A4
-#)
-#
-#XML2PDF(
-# WSUG_SOURCE
-# custom_layer_pdf.xsl
-# letter
-#)
+XML2HTML(
+ wsug.validated
+ wsug_html_chunked/index.html
+ chunked
+ WSUG_SOURCE
+ WSUG_GRAPHICS
+)
+
+XML2PDF(
+ user-guide-a4.pdf
+ WSUG_SOURCE
+ custom_layer_pdf.xsl
+ A4
+)
-# wsdg: wsdg_html_chunked developer-guide.html developer-guide-a4.pdf developer-guide-us.pdf
+XML2PDF(
+ user-guide-us.pdf
+ WSUG_SOURCE
+ custom_layer_pdf.xsl
+ letter
+)
-# ...
+add_custom_target(
+ developer_guides ALL
+ DEPENDS
+ wsluarm
+ wsdg_html_chunked/index.html
+ wsdg_html/developer-guide.html
+ developer-guide-a4.pdf
+ developer-guide-us.pdf
+)
-# release_notes: release-notes.html release-notes.txt release-notes-a4.pdf release-notes-us.pdf
+VALIDATE_XML(
+ wsdg.validated
+ WSDG_SOURCE
+)
+
+XML2HTML(
+ wsdg.validated
+ wsdg_html/developer-guide.html
+ single-page
+ WSDG_SOURCE
+ WSDG_GRAPHICS
+)
+
+XML2HTML(
+ wsdg.validated
+ wsdg_html_chunked/index.html
+ chunked
+ WSDG_SOURCE
+ WSDG_GRAPHICS
+)
+
+XML2PDF(
+ developer-guide-a4.pdf
+ WSDG_SOURCE
+ custom_layer_pdf.xsl
+ A4
+)
-# ...
+XML2PDF(
+ developer-guide-us.pdf
+ WSDG_SOURCE
+ custom_layer_pdf.xsl
+ letter
+)
+
+# release_notes: release-notes.html release-notes.txt release-notes-a4.pdf release-notes-us.pdf
# wsluarm
ADD_CUSTOM_COMMAND(
OUTPUT
wsluarm
+ COMMAND cmake -E make_directory wsluarm_src
COMMAND ${PERL_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/make-wsluarm.pl
${WSLUA_MODULES}
@@ -312,51 +353,4 @@ ADD_CUSTOM_COMMAND(
${CMAKE_CURRENT_SOURCE_DIR}/make-wsluarm.pl
${WSLUA_MODULES}
)
-# ...
-
-
-# make-taps.pl depends on the current working directory
-# to find the dissector files (contents of taps file
-# depend on this actually, so just changing the paths
-# in these lists won't help).
-#ADD_CUSTOM_COMMAND(
-# OUTPUT
-# ${CMAKE_CURRENT_BINARY_DIR}/taps_wslua.c
-# ${CMAKE_CURRENT_BINARY_DIR}/taps.txt
-# COMMAND ${PERL_EXECUTABLE}
-# ${CMAKE_CURRENT_SOURCE_DIR}/make-taps.pl
-# ${CMAKE_CURRENT_SOURCE_DIR}/taps
-# ${CMAKE_CURRENT_BINARY_DIR}/taps_wslua.c
-# ${CMAKE_CURRENT_BINARY_DIR}/taps.txt
-# WORKING_DIRECTORY
-# ${CMAKE_CURRENT_SOURCE_DIR}
-# DEPENDS
-# ${CMAKE_CURRENT_SOURCE_DIR}/taps
-# ${CMAKE_CURRENT_SOURCE_DIR}/make-taps.pl
-# # Only here to add dependencies for the taps "source"files
-# ${WSLUA_TAPS_USED}
-#)
-
-#ADD_CUSTOM_COMMAND(
-# OUTPUT
-# declare_wslua.h
-# register_wslua.c
-# COMMAND ${PERL_EXECUTABLE}
-# ${CMAKE_CURRENT_SOURCE_DIR}/make-reg.pl
-# ${WSLUA_MODULES}
-# DEPENDS
-# ${CMAKE_CURRENT_SOURCE_DIR}/make-reg.pl
-# ${WSLUA_MODULES}
-# # ${CMAKE_CURRENT_BINARY_DIR}/taps_wslua.c
-#)
-#
-
-#install(
-# FILES
-# console.lua
-# dtd_gen.lua
-# ${CMAKE_CURRENT_BINARY_DIR}/init.lua
-# DESTINATION
-# ${CMAKE_INSTALL_DATADIR}/${CPACK_PACKAGE_NAME}
-#)