fixup Fix to build with libxml 2.12.x (fixes #505)
[platform/upstream/libzypp.git] / doc / CMakeLists.txt
1 IF ( ENABLE_BUILD_DOCS )
2   ADD_SUBDIRECTORY( autodoc )
3 ELSE ( ENABLE_BUILD_DOCS )
4   ADD_SUBDIRECTORY( autodoc EXCLUDE_FROM_ALL )
5 ENDIF ( ENABLE_BUILD_DOCS )
6
7 FIND_PROGRAM(A2X a2x)
8 IF (A2X)
9 MESSAGE("a2x found: ${A2X}")
10 SET(ASCDOC_CMD ${A2X} -D ${CMAKE_CURRENT_BINARY_DIR} -f manpage)
11 ENDIF (A2X)
12
13 FIND_PROGRAM(ASCIIDOC asciidoctor)
14 IF (ASCIIDOC)
15 MESSAGE("asciidoctor found: ${ASCIIDOC}")
16 SET(ASCDOC_CMD ${ASCIIDOC} -D ${CMAKE_CURRENT_BINARY_DIR} -b manpage -d manpage)
17 ENDIF (ASCIIDOC)
18
19 IF (NOT ASCDOC_CMD)
20 MESSAGE(FATAL_ERROR "Could not find a2x or asciidoctor, please install either one of them.")
21 ENDIF()
22
23 function(ADD_A2X_MANPAGES)
24     set(options)
25     set(oneValueArgs MAN_INST_PATH)
26     set(multiValueArgs MAN_PAGES1 MAN_PAGES2 MAN_PAGES3 MAN_PAGES4 MAN_PAGES5 MAN_PAGES6 MAN_PAGES7 MAN_PAGES8)
27     cmake_parse_arguments(A2X "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
28
29     set(ALL_MAN_PAGES)
30
31     FOREACH (MAN_IDX RANGE 1 8)
32         IF (NOT DEFINED A2X_MAN_PAGES${MAN_IDX})
33             CONTINUE()
34         ENDIF()
35
36         FOREACH (curr_PAGE ${A2X_MAN_PAGES${MAN_IDX}})
37             ADD_CUSTOM_COMMAND (
38               OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${curr_PAGE}
39               COMMAND ${ASCDOC_CMD} ${CMAKE_CURRENT_SOURCE_DIR}/${curr_PAGE}.txt
40               DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${curr_PAGE}.txt
41               WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
42               COMMENT "Building manpage ${curr_PAGE}"
43             )
44
45             ADD_CUSTOM_TARGET(
46               ${curr_PAGE}_Target ALL
47               DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${curr_PAGE}
48             )
49
50             INSTALL (
51               FILES ${CMAKE_CURRENT_BINARY_DIR}/${curr_PAGE}
52               DESTINATION "${A2X_MAN_INST_PATH}/man${MAN_IDX}"
53             )
54
55         ENDFOREACH ()
56     ENDFOREACH()
57 endfunction(ADD_A2X_MANPAGES)
58
59 SET (libzypp_MAN1
60      zypp-CheckAccessDeleted.1 zypp-NameReqPrv.1)
61
62 SET (libzypp_MAN5
63      locks.5)
64
65 ADD_A2X_MANPAGES(
66     MAN_INST_PATH ${MANDIR}
67     MAN_PAGES1 ${libzypp_MAN1}
68     MAN_PAGES5 ${libzypp_MAN5}
69 )