Merge pull request #281 from afh/pull/gendocs

Improve the documentation tools
This commit is contained in:
Craig Earls 2014-04-27 07:54:51 -07:00
commit 04d147c9a7
2 changed files with 44 additions and 10 deletions

View file

@ -37,6 +37,7 @@ set(info_files ledger3.texi ledger-mode.texi)
find_program(MAKEINFO makeinfo) find_program(MAKEINFO makeinfo)
find_program(TEXI2PDF texi2pdf) find_program(TEXI2PDF texi2pdf)
find_program(MAN2HTML man2html) find_program(MAN2HTML man2html)
find_program(GROFF groff)
######################################################################## ########################################################################
@ -57,8 +58,11 @@ foreach(file ${info_files})
if(NOT TEXI2PDF) if(NOT TEXI2PDF)
message(WARNING "Could not find texi2pdf. PDF version of documentation will not be built.") message(WARNING "Could not find texi2pdf. PDF version of documentation will not be built.")
else() else()
if(BUILD_A4_PDF)
set(papersize --texinfo=@afourpaper)
endif()
add_custom_command(OUTPUT ${file_base}.pdf add_custom_command(OUTPUT ${file_base}.pdf
COMMAND texi2pdf -b -q -o ${file_base}.pdf ${CMAKE_CURRENT_SOURCE_DIR}/${file} COMMAND texi2pdf ${papersize} -b -q -o ${file_base}.pdf ${CMAKE_CURRENT_SOURCE_DIR}/${file}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file}
VERBATIM) VERBATIM)
list(APPEND ledger_doc_files ${file_base}.pdf) list(APPEND ledger_doc_files ${file_base}.pdf)
@ -72,15 +76,21 @@ if(BUILD_WEB_DOCS)
if(NOT BASH) if(NOT BASH)
message(FATAL_ERROR "Could not find bash. Unable to build documentation.") message(FATAL_ERROR "Could not find bash. Unable to build documentation.")
endif() endif()
if(NOT MAN2HTML) if(MAN2HTML)
message(FATAL_ERROR "Could not find man2html. HTML version of man page cannot be built.")
endif()
add_custom_command(OUTPUT ledger.1.html add_custom_command(OUTPUT ledger.1.html
COMMAND ${BASH} -c "man2html ${CMAKE_CURRENT_SOURCE_DIR}/ledger.1 | tail -n+3 > ledger.1.html" COMMAND ${BASH} -c "man2html ${CMAKE_CURRENT_SOURCE_DIR}/ledger.1 | tail -n+3 > ledger.1.html"
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ledger.1 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ledger.1
VERBATIM) VERBATIM)
list(APPEND ledger_doc_files ledger.1.html) list(APPEND ledger_doc_files ledger.1.html)
elseif(GROFF)
add_custom_command(OUTPUT ledger.1.html
COMMAND ${BASH} -c "groff -mandoc -Thtml ${CMAKE_CURRENT_SOURCE_DIR}/ledger.1 > ledger.1.html"
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ledger.1
VERBATIM)
list(APPEND ledger_doc_files ledger.1.html)
else()
message(FATAL_ERROR "Could not find man2html or groff. HTML version of man page cannot be built.")
endif()
endif(BUILD_WEB_DOCS) endif(BUILD_WEB_DOCS)
######################################################################## ########################################################################

View file

@ -1,5 +1,29 @@
#!/bin/bash #!/bin/bash
# By default US Letter is used as the PDF papersize.
# For those preferring other dimensions add a4 or small
# as a commandline argument to this script to create a
# DIN A4 or smallbook version of the PDF.
case $1 in
a4*|afour*)
papersize='--texinfo=@afourpaper';;
small*)
papersize='--texinfo=@smallbook';;
*)
papersize='';; # US Letter is texinfo default
esac
# Use keg-only Mac Hombrew texinfo if installed.
# Since texi2pdf is a shell script itself executing texi2dvi
# PATH is prepended with the path to correct texinfo scripts.
if [ $(uname -s) = 'Darwin' ]; then
brew list texinfo >/dev/null 2>&1 \
&& export PATH="$(brew --prefix texinfo)/bin:$PATH"
fi
echo "===================================== Making Info..." echo "===================================== Making Info..."
makeinfo ledger3.texi makeinfo ledger3.texi
echo "===================================== Making HTML..."
makeinfo --html --no-split ledger3.texi
echo "===================================== Making PDF..." echo "===================================== Making PDF..."
texi2pdf --quiet --batch ledger3.texi texi2pdf --quiet --batch ${papersize} ledger3.texi