Update po files and build system wrt it.
[apps/madmutt.git] / po / CMakeLists.txt
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
new file mode 100644 (file)
index 0000000..41ae973
--- /dev/null
@@ -0,0 +1,40 @@
+FIND_PROGRAM(XGETTEXT_EXECUTABLE xgettext)
+FIND_PROGRAM(MSGMERGE_EXECUTABLE msgmerge)
+FIND_PROGRAM(MSGFMT_EXECUTABLE msgfmt)
+
+SET(POT_OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/madmutt.pot)
+
+FILE(GLOB _pofiles *.po)
+
+ADD_CUSTOM_TARGET(update-po
+    WORKING_DIRECTORY ${madmutt_SOURCE_DIR}
+    COMMAND ${XGETTEXT_EXECUTABLE} -Lc -k_ -kN_ -o${POT_OUTPUT} -f${CMAKE_CURRENT_SOURCE_DIR}/POTFILES
+)
+
+FOREACH(_file ${_pofiles})
+    GET_FILENAME_COMPONENT(_file_we ${_file} NAME_WE)
+    SET(_in  ${_file_we}.po)
+    SET(_abs ${CMAKE_CURRENT_SOURCE_DIR}/${_in})
+    SET(_out ${CMAKE_CURRENT_BINARY_DIR}/${_file_we}.gmo)
+
+    ADD_CUSTOM_TARGET(${_in}
+        COMMAND ${MSGMERGE_EXECUTABLE} -q -U --backup=none -s ${_file} ${POT_OUTPUT}
+    )
+
+    ADD_CUSTOM_COMMAND(
+        OUTPUT ${_out}
+        COMMAND ${MSGFMT_EXECUTABLE} -o ${_out} ${_abs}
+        DEPENDS ${_abs}
+    )
+
+    INSTALL(
+        FILES ${_file}
+        DESTINATION share/locale/${_file_we}/LC_MESSAGES/
+        RENAME madmutt.mo
+    )
+
+    SET(_gmofiles ${_gmofiles} ${_out})
+    ADD_DEPENDENCIES(update-po ${_in})
+ENDFOREACH(_file)
+
+ADD_CUSTOM_TARGET(translations ALL DEPENDS ${_gmofiles})