diff options
| -rw-r--r-- | CMakeLists.txt | 50 | ||||
| -rw-r--r-- | CMakeScripts/Pod2man.cmake | 54 |
2 files changed, 55 insertions, 49 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 62e976852..1e4dd7eeb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -147,55 +147,7 @@ endif(ENABLE_NLS) # ----------------------------------------------------------------------------- # Man pages # ----------------------------------------------------------------------------- - -find_program(POD2MAN pod2man) -if(NOT POD2MAN) - message(STATUS "Could not find pod2man - man pages disabled") -endif() - -macro(pod2man PODFILE_FULL RELEASE SECTION CENTER) - get_filename_component(PODFILE ${PODFILE_FULL} NAME) - string(REPLACE "." ";" PODFILE_LIST ${PODFILE}) - list(GET PODFILE_LIST 0 NAME) - list(GET PODFILE_LIST 1 LANG) - string(TOUPPER ${NAME} NAME_UPCASE) - if(${LANG} STREQUAL "pod") - set(LANG "") - endif() - - if(NOT EXISTS ${PODFILE_FULL}) - message(FATAL ERROR "Could not find pod file ${PODFILE_FULL} to generate man page") - endif(NOT EXISTS ${PODFILE_FULL}) - - if(POD2MAN) - if(LANG) - set(MANPAGE_TARGET "man-${NAME}-${LANG}") - set(MANFILE_TEMP "${CMAKE_CURRENT_BINARY_DIR}/man/${NAME}.${LANG}.tmp") - set(MANFILE_FULL "${CMAKE_CURRENT_BINARY_DIR}/man/${NAME}.${LANG}.${SECTION}") - else() - set(MANPAGE_TARGET "man-${NAME}") - set(MANFILE_TEMP "${CMAKE_CURRENT_BINARY_DIR}/man/${NAME}.tmp") - set(MANFILE_FULL "${CMAKE_CURRENT_BINARY_DIR}/man/${NAME}.${SECTION}") - endif() - add_custom_command( - OUTPUT ${MANFILE_TEMP} - COMMAND ${POD2MAN} --utf8 --section="${SECTION}" --center="${CENTER}" - --release="${RELEASE}" --name="${NAME_UPCASE}" "${PODFILE_FULL}" "${MANFILE_TEMP}" - ) - add_custom_command( - OUTPUT ${MANFILE_FULL} - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/fix-roff-punct "${MANFILE_TEMP}" > ${MANFILE_FULL} - DEPENDS ${MANFILE_TEMP} - ) - add_custom_target(${MANPAGE_TARGET} ALL - DEPENDS ${MANFILE_FULL} - ) - install( - FILES ${MANFILE_FULL} - DESTINATION ${CMAKE_INSTALL_MANDIR}/man${SECTION} - ) - endif() -endmacro(pod2man PODFILE NAME SECTION CENTER) +include("CMakeScripts/Pod2man.cmake") # Load AUTHORS file contents into $INKSCAPE_AUTHORS FILE(READ ${CMAKE_CURRENT_SOURCE_DIR}/AUTHORS content) diff --git a/CMakeScripts/Pod2man.cmake b/CMakeScripts/Pod2man.cmake new file mode 100644 index 000000000..839e79d80 --- /dev/null +++ b/CMakeScripts/Pod2man.cmake @@ -0,0 +1,54 @@ +# Use pod2man to generate manual pages from .pod files + +# Usage: pod2man(<podfile> <release-string> <man-section> <heading-center-text>) +# +# E.g.: pod2man("/path/to/file/mypod.pod" "1.2.3" 1 "My Manual Pages") + +find_program(POD2MAN pod2man) +if(NOT POD2MAN) + message(STATUS "Could not find pod2man - man pages disabled") +endif() + +macro(pod2man PODFILE_FULL RELEASE SECTION CENTER) + get_filename_component(PODFILE ${PODFILE_FULL} NAME) + string(REPLACE "." ";" PODFILE_LIST ${PODFILE}) + list(GET PODFILE_LIST 0 NAME) + list(GET PODFILE_LIST 1 LANG) + string(TOUPPER ${NAME} NAME_UPCASE) + if(${LANG} STREQUAL "pod") + set(LANG "") + endif() + + if(NOT EXISTS ${PODFILE_FULL}) + message(FATAL ERROR "Could not find pod file ${PODFILE_FULL} to generate man page") + endif(NOT EXISTS ${PODFILE_FULL}) + + if(POD2MAN) + if(LANG) + set(MANPAGE_TARGET "man-${NAME}-${LANG}") + set(MANFILE_TEMP "${CMAKE_CURRENT_BINARY_DIR}/man/${NAME}.${LANG}.tmp") + set(MANFILE_FULL "${CMAKE_CURRENT_BINARY_DIR}/man/${NAME}.${LANG}.${SECTION}") + else() + set(MANPAGE_TARGET "man-${NAME}") + set(MANFILE_TEMP "${CMAKE_CURRENT_BINARY_DIR}/man/${NAME}.tmp") + set(MANFILE_FULL "${CMAKE_CURRENT_BINARY_DIR}/man/${NAME}.${SECTION}") + endif() + add_custom_command( + OUTPUT ${MANFILE_TEMP} + COMMAND ${POD2MAN} --utf8 --section="${SECTION}" --center="${CENTER}" + --release="${RELEASE}" --name="${NAME_UPCASE}" "${PODFILE_FULL}" "${MANFILE_TEMP}" + ) + add_custom_command( + OUTPUT ${MANFILE_FULL} + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/fix-roff-punct "${MANFILE_TEMP}" > ${MANFILE_FULL} + DEPENDS ${MANFILE_TEMP} + ) + add_custom_target(${MANPAGE_TARGET} ALL + DEPENDS ${MANFILE_FULL} + ) + install( + FILES ${MANFILE_FULL} + DESTINATION ${CMAKE_INSTALL_MANDIR}/man${SECTION} + ) + endif() +endmacro(pod2man PODFILE NAME SECTION CENTER) |
