summaryrefslogtreecommitdiffstats
path: root/src/desktop/CMakeLists.txt
diff options
context:
space:
mode:
authorDidier Raboud <odyx@debian.org>2012-12-27 11:05:02 +0100
committerDidier Raboud <odyx@debian.org>2012-12-27 11:05:02 +0100
commit778ae32c12143c0740e9b9b6023df21183c998d5 (patch)
tree9b9bc20b215b2e32bf8fee77e28a5b7eedc979f0 /src/desktop/CMakeLists.txt
parentc2ebd5551ff2569f56e3321efd2d9bedaf079955 (diff)
downloadcolobot-778ae32c12143c0740e9b9b6023df21183c998d5.tar.gz
colobot-778ae32c12143c0740e9b9b6023df21183c998d5.tar.bz2
colobot-778ae32c12143c0740e9b9b6023df21183c998d5.zip
Add manpage for colobot
- Translate it with po4a - Use POD-format as source, and pod2man for building
Diffstat (limited to 'src/desktop/CMakeLists.txt')
-rw-r--r--src/desktop/CMakeLists.txt47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/desktop/CMakeLists.txt b/src/desktop/CMakeLists.txt
index cc159a9..1e5058f 100644
--- a/src/desktop/CMakeLists.txt
+++ b/src/desktop/CMakeLists.txt
@@ -37,6 +37,40 @@ if(RSVG_CONVERT)
endforeach()
endif()
+# Create manpage from pod-formatted file
+find_program(POD2MAN pod2man)
+if(POD2MAN)
+ set(COLOBOT_MANPAGE_SECTION 6)
+
+ macro(podman)
+ cmake_parse_arguments(PM "" "PODFILE;LOCALE;" "" ${ARGN})
+ if(PM_LOCALE)
+ # This copes with the fact that english has no "/LANG" in the paths and filenames.
+ set(SLASHLOCALE /${PM_LOCALE})
+ endif()
+ file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}${SLASHLOCALE})
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}${SLASHLOCALE}/colobot.${COLOBOT_MANPAGE_SECTION}
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${PM_PODFILE}
+ COMMAND ${POD2MAN} ARGS --section=${COLOBOT_MANPAGE_SECTION}
+ --center="Colobot" --stderr --utf8
+ ${CMAKE_CURRENT_SOURCE_DIR}/${PM_PODFILE}
+ ${CMAKE_CURRENT_BINARY_DIR}${SLASHLOCALE}/colobot.${COLOBOT_MANPAGE_SECTION}
+ COMMENT "Create ${SLASHLOCALE}/colobot.${COLOBOT_MANPAGE_SECTION} manpage"
+ )
+ add_custom_target(man${PM_LOCALE} DEPENDS ${CMAKE_CURRENT_BINARY_DIR}${SLASHLOCALE}/colobot.${COLOBOT_MANPAGE_SECTION})
+
+ install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}${SLASHLOCALE}/colobot.${COLOBOT_MANPAGE_SECTION}
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man${SLASHLOCALE}/man${COLOBOT_MANPAGE_SECTION}/ )
+
+ add_dependencies(man man${PM_LOCALE})
+ endmacro()
+
+ # Create the english manpage
+ podman(PODFILE colobot.pod)
+
+endif()
+
# Translate translatable material
find_program(PO4A po4a)
@@ -46,4 +80,17 @@ if(PO4A)
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
add_dependencies(desktopfile desktop_po4a)
+
+ if(POD2MAN)
+ add_custom_target(man_po4a
+ COMMAND ${PO4A} po4a.cfg
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ )
+ add_dependencies(man man_po4a)
+ file(GLOB LINGUAS_PO RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/po/ ${CMAKE_CURRENT_SOURCE_DIR}/po/*.po)
+ string(REGEX REPLACE ".po$" "" LINGUAS ${LINGUAS_PO})
+ foreach(LOCALE ${LINGUAS})
+ podman(PODFILE lang/${LOCALE}/colobot.pod LOCALE ${LOCALE})
+ endforeach()
+ endif()
endif()