aboutsummaryrefslogtreecommitdiffstats
path: root/CMake/Manpage.cmake
blob: bbd6f2dccf37e1d39d5bbc89021f122640af69d9 (plain) (blame)
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
find_package(A2X)

if (A2X_FOUND)
    add_custom_target(man ALL)

    function(add_manpage name section)
        add_custom_command(
            OUTPUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${name}.${section}
            COMMAND ${A2X_COMMAND}
                    --no-xmllint
                    --doctype manpage
                    --format manpage
                    -D ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
                    ${CMAKE_CURRENT_SOURCE_DIR}/${name}.${section}.txt
            DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${name}.${section}.txt
            COMMENT Generating manpage for ${name}.${section}
        )

        add_custom_target(man-${name}.${section}
            DEPENDS
                ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${name}.${section}
        )
        add_dependencies(man
            man-${name}.${section}
        )

        install(
            FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${name}.${section}
            DESTINATION ${CMAKE_INSTALL_FULL_MANDIR}/man${section}
            COMPONENT documentation
        )
    endfunction()
endif()