File: Ronn2Man.cmake

package info (click to toggle)
ignition-math2 2.5.0-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 2,880 kB
  • ctags: 6,184
  • sloc: cpp: 22,421; python: 2,684; ansic: 289; sh: 185; makefile: 14
file content (59 lines) | stat: -rw-r--r-- 1,944 bytes parent folder | download | duplicates (4)
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#
# Based on work of Emmanuel Roullit <emmanuel@netsniff-ng.org>
# Copyright 2009, 2012 Emmanuel Roullit.
# Subject to the GPL, version 2.
#
MACRO(ADD_MANPAGE_TARGET)
  # It is not possible add a dependency to target 'install'
  # Run hard-coded 'make man' when 'make install' is invoked
  INSTALL(CODE "EXECUTE_PROCESS(COMMAND make man)")
  ADD_CUSTOM_TARGET(man)
ENDMACRO(ADD_MANPAGE_TARGET)

FIND_PROGRAM(RONN ronn)
FIND_PROGRAM(GZIP gzip)

IF (NOT RONN OR NOT GZIP)
  IF (NOT RONN)
    BUILD_WARNING ("ronn not found, manpages won't be generated")
  ENDIF(NOT RONN)
  IF (NOT GZIP)
    BUILD_WARNING ("gzip not found, manpages won't be generated")
  ENDIF(NOT GZIP)
  # empty macro
  MACRO(manpage MANFILE)
  ENDMACRO(manpage)
  SET (MANPAGES_SUPPORT FALSE)
ELSE (NOT RONN OR NOT GZIP)
  MESSAGE (STATUS "Looking for ronn to generate manpages - found")
  SET (MANPAGES_SUPPORT TRUE)

  MACRO(manpage RONNFILE SECTION)
    SET(RONNFILE_FULL_PATH ${CMAKE_CURRENT_SOURCE_DIR}/${RONNFILE})

    ADD_CUSTOM_COMMAND(
      OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${RONNFILE}.${SECTION}
      DEPENDS ${RONNFILE}
      COMMAND ${RONN}
         ARGS -r --pipe ${RONNFILE_FULL_PATH}.${SECTION}.ronn
         > ${CMAKE_CURRENT_BINARY_DIR}/${RONNFILE}.${SECTION}
    )

    ADD_CUSTOM_COMMAND(
      OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${RONNFILE}.${SECTION}.gz
      DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${RONNFILE}.${SECTION}
      COMMAND ${GZIP} -c ${CMAKE_CURRENT_BINARY_DIR}/${RONNFILE}.${SECTION}
        > ${CMAKE_CURRENT_BINARY_DIR}/${RONNFILE}.${SECTION}.gz
    )

    SET(MANPAGE_TARGET "man-${RONNFILE}")

    ADD_CUSTOM_TARGET(${MANPAGE_TARGET} DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${RONNFILE}.${SECTION}.gz)
    ADD_DEPENDENCIES(man ${MANPAGE_TARGET})

    INSTALL(
      FILES ${CMAKE_CURRENT_BINARY_DIR}/${RONNFILE}.${SECTION}.gz
      DESTINATION share/man/man${SECTION}
    )
  ENDMACRO(manpage RONNFILE SECTION)
ENDIF(NOT RONN OR NOT GZIP)