File: pod2man.cmake

package info (click to toggle)
tarantool 1.7.2.385.g952d79e-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 21,556 kB
  • ctags: 28,405
  • sloc: ansic: 180,313; cpp: 26,044; sh: 15,513; python: 4,893; makefile: 1,412
file content (36 lines) | stat: -rw-r--r-- 1,390 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# Generate man pages of the project by using the POD header
# written in the tool source code. To use it - include this
# file in CMakeLists.txt and invoke
# pod2man(<podfile> <manfile> <section> <center>)
find_program(POD2MAN pod2man)

if(NOT POD2MAN)
    message(STATUS "Could not find pod2man - man pages disabled")
endif(NOT POD2MAN)

macro(pod2man PODFILE NAME SECTION CENTER)
    set(PODFILE_FULL "${CMAKE_CURRENT_SOURCE_DIR}/${PODFILE}")
    set(MANFILE_FULL "${CMAKE_CURRENT_BINARY_DIR}/${NAME}.${SECTION}")
    if(NOT EXISTS ${PODFILE_FULL})
        set(PODFILE_FULL "${CMAKE_CURRENT_BINARY_DIR}/${PODFILE}")
    endif(NOT EXISTS ${PODFILE_FULL})
    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)
        add_custom_command(
            OUTPUT ${MANFILE_FULL}
            COMMAND ${POD2MAN} --section="${SECTION}" --center="${CENTER}"
                --release --name="${NAME}" "${PODFILE_FULL}" "${MANFILE_FULL}"
        )
        set(MANPAGE_TARGET "man-${NAME}")
        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 OUTPATH CENTER)