WSJT-X/manpages/CMakeLists.txt
Bill Somerville e2c8634f54 Get local user manual working on Linux systems.
The  location  of  documentation   files  on  Linux  distributions  is
controlled  to a  certain extent.  Using the  QStandardPaths::locate()
method helps us with this.

Work round the  misbehaviour of QCoreApplication::applicationDirPath()
when  the  CWD has  been  changed  by  working out  the  documentation
location before changing  the CWD to a temporary  directory. This path
is now provided by the Configuration settings class which also manages
other run time paths.

Updated  Debian packaging  to move  a little  nearer a  conforming DEB
file.

Added a basic manpage for rigctld-wsjtx.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4364 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2014-09-25 14:45:36 +00:00

69 lines
2.3 KiB
CMake

set (ASCIIDOC_MANS
man1/wsjtx.1.txt
man1/jt65code.1.txt
man1/rigctld-wsjtx.1.txt
)
find_program (A2X_EXECUTABLE NAMES a2x a2x.py)
if (NOT A2X_EXECUTABLE)
if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
message (SEND_ERROR "Failed to find a2x which is an optional requirement for non-debug
builds on *nix platforms.
You can choose to skip manpage generation and this error by setting
the CMake option WSJT_SKIP_MANPAGES to ON. This option is designed for
those that are building for their own use, package builders should not
opt to skip manpage generation since package building requires the
manpages.")
else (NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
message (WARNING "Failed to find a2x skipping manpage generation.")
endif (NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
endif ()
find_program (GZIP_EXECUTABLE NAMES gzip)
find_program (SED_EXECUTABLE NAMES sed)
set (XSLTPROC_OPTS
"-param man.endnotes.list.enabled 0 -param man.endnotes.are.numbered 0"
)
set (A2X_OPTS
--format=manpage
--xsltproc-opts=${XSLTPROC_OPTS}
--doctype=manpage
--no-xmllint
)
set (MANPAGES)
if (A2X_EXECUTABLE AND GZIP_EXECUTABLE AND SED_EXECUTABLE)
file (MAKE_DIRECTORY man)
foreach (f IN LISTS ASCIIDOC_MANS)
get_filename_component (d "${f}" PATH)
string (SUBSTRING "${d}" 3 -1 section)
if (NOT section MATCHES "[1-9]")
message (SEND_ERROR "Invalid man section ${section} in ${f}")
endif (NOT section MATCHES "[1-9]")
get_filename_component (filename "${f}" NAME_WE)
set (f "${CMAKE_CURRENT_SOURCE_DIR}/${f}")
set (d "man/${d}")
set (o "${d}/${filename}.${section}")
add_custom_command (OUTPUT "${o}.gz"
COMMAND ${CMAKE_COMMAND} ARGS -E make_directory "${d}"
COMMAND ${A2X_EXECUTABLE} ARGS ${A2X_OPTS} -D "${d}" "${f}"
COMMAND ${SED_EXECUTABLE} ARGS -e "'s@.so @&man${section}/@'" -i.orig "${d}/*.${section}"
COMMAND ${GZIP_EXECUTABLE} ARGS -f9 "${d}/*.${section}"
DEPENDS "${f}"
COMMENT "Generating ${o}.gz"
)
list (APPEND MANPAGES "${o}.gz")
endforeach ()
install (
DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/man
DESTINATION ${WSJT_MANPAGE_DESTINATION}
PATTERN "*.orig" EXCLUDE
#COMPONENT Runtime
)
endif (A2X_EXECUTABLE AND GZIP_EXECUTABLE AND SED_EXECUTABLE)
add_custom_target (manpages DEPENDS ${MANPAGES})