Forráskód Böngészése

cmake/docs: Add kamailio,kamcmd, kamctl man pages

- Add man target to generate the man files
- Add seperate targets for each util
- Include them in the install as well
Xenofon Karamanos 8 hónapja
szülő
commit
ebbc54e27c
3 módosított fájl, 99 hozzáadás és 3 törlés
  1. 45 2
      src/CMakeLists.txt
  2. 21 0
      utils/kamcmd/CMakeLists.txt
  3. 33 1
      utils/kamctl/CMakeLists.txt

+ 45 - 2
src/CMakeLists.txt

@@ -142,8 +142,51 @@ install(
 install(
 install(
   FILES ${CMAKE_SOURCE_DIR}/README ${CMAKE_SOURCE_DIR}/INSTALL
   FILES ${CMAKE_SOURCE_DIR}/README ${CMAKE_SOURCE_DIR}/INSTALL
   DESTINATION ${CMAKE_INSTALL_DOCDIR}
   DESTINATION ${CMAKE_INSTALL_DOCDIR}
-  COMPONENT kamailio-docs
-)
+  COMPONENT kamailio-docs)
+
+# ----------
+# Create and install the man pages for kamailio
+add_custom_command(
+  OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${MAIN_NAME}.8
+  COMMAND
+    sed -e
+    "s#/etc/${CFG_NAME}/${CFG_NAME}\.cfg#${CMAKE_INSTALL_FULL_SYSCONFDIR}/${MAIN_NAME}/${MAIN_NAME}.cfg#g"
+    -e "s#/usr/sbin/#${CMAKE_INSTALL_FULL_SBINDIR}/#g" -e
+    "s#/usr/lib/${CFG_NAME}/#${CMAKE_INSTALL_FULL_LIBDIR}/${MAIN_NAME}/#g" -e
+    "s#/usr/share/doc/${CFG_NAME}/#${CMAKE_INSTALL_FULL_DOCDIR}/#g" -e
+    "s#${SRC_NAME}#${MAIN_NAME}#g" < ${CMAKE_SOURCE_DIR}/doc/man/kamailio.8 >
+    ${CMAKE_CURRENT_BINARY_DIR}/${MAIN_NAME}.8
+  DEPENDS ${CMAKE_SOURCE_DIR}/doc/man/kamailio.8)
+
+add_custom_command(
+  OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${MAIN_NAME}.cfg.5
+  COMMAND
+    sed -e
+    "s#/etc/${CFG_NAME}/${CFG_NAME}\.cfg#${CMAKE_INSTALL_FULL_SYSCONFDIR}/${MAIN_NAME}/${MAIN_NAME}.cfg#g"
+    -e "s#/usr/sbin/#${CMAKE_INSTALL_FULL_SBINDIR}/#g" -e
+    "s#/usr/lib/${CFG_NAME}/#${CMAKE_INSTALL_FULL_LIBDIR}/${MAIN_NAME}/#g" -e
+    "s#/usr/share/doc/${CFG_NAME}/#${CMAKE_INSTALL_FULL_DOCDIR}/#g" -e
+    "s#${SRC_NAME}#${MAIN_NAME}#g" < ${CMAKE_SOURCE_DIR}/doc/man/kamailio.cfg.5
+    > ${CMAKE_CURRENT_BINARY_DIR}/${MAIN_NAME}.cfg.5
+  DEPENDS ${CMAKE_SOURCE_DIR}/doc/man/kamailio.cfg.5)
+
+add_custom_target(man DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${MAIN_NAME}.8
+                              ${CMAKE_CURRENT_BINARY_DIR}/${MAIN_NAME}.cfg.5)
+add_dependencies(man kamctl_man)
+add_dependencies(man kamcmd_man)
+
+install(
+  FILES ${CMAKE_CURRENT_BINARY_DIR}/${MAIN_NAME}.8
+  DESTINATION ${CMAKE_INSTALL_MANDIR}/man8
+  COMPONENT kamailio_man
+  OPTIONAL)
+
+install(
+  FILES ${CMAKE_CURRENT_BINARY_DIR}/${MAIN_NAME}.cfg.5
+  DESTINATION ${CMAKE_INSTALL_MANDIR}/man5
+  COMPONENT kamailio_man
+  OPTIONAL)
+# ----------
 
 
 # Install the configuration file (kamailio.cfg) ${CFG_NAME} using a CODE block
 # Install the configuration file (kamailio.cfg) ${CFG_NAME} using a CODE block
 # to check  existence at install time instead of configure time
 # to check  existence at install time instead of configure time

+ 21 - 0
utils/kamcmd/CMakeLists.txt

@@ -39,3 +39,24 @@ target_compile_definitions(
           __OS_${OS_LOWER})
           __OS_${OS_LOWER})
 
 
 install(TARGETS ${NAME} DESTINATION ${CMAKE_INSTALL_SBINDIR})
 install(TARGETS ${NAME} DESTINATION ${CMAKE_INSTALL_SBINDIR})
+
+# Man page generation
+add_custom_command(
+  OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/kamcmd.8
+  COMMAND
+    sed -e
+    "s#/etc/${CFG_NAME}/${CFG_NAME}\.cfg#${CMAKE_INSTALL_FULL_SYSCONFDIR}/${MAIN_NAME}/${MAIN_NAME}.cfg#g"
+    -e "s#/usr/sbin/#${CMAKE_INSTALL_FULL_SBINDIR}/#g" -e
+    "s#/usr/lib/${CFG_NAME}/modules/#${CMAKE_INSTALL_FULL_LIBDIR}/${MAIN_NAME}/#g"
+    -e "s#/usr/share/doc/${CFG_NAME}/#${CMAKE_INSTALL_FULL_DOCDIR}/#g" -e
+    "s#$(SRC_NAME)#$(MAIN_NAME)#g" < ${CMAKE_CURRENT_SOURCE_DIR}/kamcmd.8 >
+    ${CMAKE_CURRENT_BINARY_DIR}/kamcmd.8
+  DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/kamcmd.8)
+
+add_custom_target(kamcmd_man DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/kamcmd.8)
+
+install(
+  FILES ${CMAKE_CURRENT_BINARY_DIR}/kamcmd.8
+  DESTINATION ${CMAKE_INSTALL_MANDIR}/man8
+  COMPONENT kamailio_man
+  OPTIONAL)

+ 33 - 1
utils/kamctl/CMakeLists.txt

@@ -135,8 +135,40 @@ install(
 "
 "
   COMPONENT kamailio-utils-cfg)
   COMPONENT kamailio-utils-cfg)
 
 
-# Install targets
+# Man pages generation and installation
+add_custom_command(
+  OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/kamctl.8
+  COMMAND
+    sed -e
+    "s#/etc/${CFG_NAME}/${CFG_NAME}\.cfg#${CMAKE_INSTALL_FULL_SYSCONFDIR}/${MAIN_NAME}/${MAIN_NAME}.cfg#g"
+    -e "s#/usr/sbin/#${CMAKE_INSTALL_FULL_SBINDIR}/#g" -e
+    "s#/usr/lib/${CFG_NAME}/modules/#${CMAKE_INSTALL_FULL_LIBDIR}/${MAIN_NAME}/#g"
+    -e "s#/usr/share/doc/${CFG_NAME}/#${CMAKE_INSTALL_FULL_DOCDIR}/#g" <
+    ${CMAKE_CURRENT_SOURCE_DIR}/kamctl.8 > ${CMAKE_CURRENT_BINARY_DIR}/kamctl.8
+  DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/kamctl.8)
 
 
+add_custom_command(
+  OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/kamdbctl.8
+  COMMAND
+    sed -e
+    "s#/etc/${CFG_NAME}/${CFG_NAME}\.cfg#${CMAKE_INSTALL_FULL_SYSCONFDIR}/${MAIN_NAME}/${MAIN_NAME}.cfg#g"
+    -e "s#/usr/sbin/#${CMAKE_INSTALL_FULL_SBINDIR}/#g" -e
+    "s#/usr/lib/${CFG_NAME}/modules/#${CMAKE_INSTALL_FULL_LIBDIR}/${MAIN_NAME}/#g"
+    -e "s#/usr/share/doc/${CFG_NAME}/#${CMAKE_INSTALL_FULL_DOCDIR}/#g" <
+    ${CMAKE_CURRENT_SOURCE_DIR}/kamdbctl.8 >
+    ${CMAKE_CURRENT_BINARY_DIR}/kamdbctl.8
+  DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/kamdbctl.8)
+
+add_custom_target(kamctl_man DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/kamctl.8
+                                     ${CMAKE_CURRENT_BINARY_DIR}/kamdbctl.8)
+
+install(
+  FILES ${CMAKE_CURRENT_BINARY_DIR}/kamctl.8 ${CMAKE_CURRENT_BINARY_DIR}/kamdbctl.8
+  DESTINATION ${CMAKE_INSTALL_MANDIR}/man8
+  COMPONENT kamailio_man
+  OPTIONAL)
+
+# Install targets
 # Custom target for installing the kamailio-cfg component
 # Custom target for installing the kamailio-cfg component
 add_custom_target(
 add_custom_target(
   install-kamailio-utils-cfg
   install-kamailio-utils-cfg