]> git.sesse.net Git - kdenlive/commitdiff
missing cmake module file for translation
authorMarco Gittler <marco@gitma.de>
Wed, 26 Mar 2008 00:39:08 +0000 (00:39 +0000)
committerMarco Gittler <marco@gitma.de>
Wed, 26 Mar 2008 00:39:08 +0000 (00:39 +0000)
svn path=/branches/KDE4/; revision=2123

cmake/modules/FindMSGFMT.cmake [new file with mode: 0644]

diff --git a/cmake/modules/FindMSGFMT.cmake b/cmake/modules/FindMSGFMT.cmake
new file mode 100644 (file)
index 0000000..c7cbd57
--- /dev/null
@@ -0,0 +1,50 @@
+#
+# Find the msgfmt program
+#
+# Modified from Rosegarden project
+#
+# Defined variables:
+#  MSGFMT_FOUND
+#  MSGFMT_EXECUTABLE
+#
+# Macro:
+#  ADD_TRANSLATIONS
+#
+
+IF(MSGFMT_EXECUTABLE)
+  SET(MSGFMT_FOUND TRUE)
+ELSE(MSGFMT_EXECUTABLE)
+  FIND_PROGRAM(MSGFMT_EXECUTABLE
+  NAMES msgfmt gmsgfmt
+  PATHS /bin /usr/bin /usr/local/bin )
+  IF(MSGFMT_EXECUTABLE)
+    SET(MSGFMT_FOUND TRUE)
+  ELSE(MSGFMT_EXECUTABLE)
+    IF(NOT MSGFMT_FIND_QUIETLY)
+      IF(MSGFMT_FIND_REQUIRED)
+        MESSAGE(FATAL_ERROR "msgfmt program couldn't be found")
+      ENDIF(MSGFMT_FIND_REQUIRED)
+    ENDIF(NOT MSGFMT_FIND_QUIETLY)
+  ENDIF(MSGFMT_EXECUTABLE)
+  MARK_AS_ADVANCED(MSGFMT_EXECUTABLE)
+ENDIF (MSGFMT_EXECUTABLE)
+IF(MSGFMT_FOUND)
+  MESSAGE(STATUS "Found msgfmt: ${MSGFMT_EXECUTABLE}")
+ENDIF(MSGFMT_FOUND)
+
+MACRO(ADD_TRANSLATIONS _lang)
+  SET(_outputs)
+  FOREACH(_file ${ARGN})
+    GET_FILENAME_COMPONENT(_file_we ${_file} NAME_WE)
+    SET(_out "${CMAKE_CURRENT_BINARY_DIR}/${_file_we}.mo")
+    SET(_in  "${CMAKE_CURRENT_SOURCE_DIR}/${_file_we}.po")
+    ADD_CUSTOM_COMMAND(
+      OUTPUT ${_out}
+      COMMAND ${MSGFMT_EXECUTABLE} -o ${_out} ${_in}
+      DEPENDS ${_in} )
+    INSTALL(FILES ${_out}
+      DESTINATION ${LOCALE_INSTALL_DIR}/${_lang}/LC_MESSAGES )
+    SET(_outputs ${_outputs} ${_out})
+  ENDFOREACH(_file)
+  ADD_CUSTOM_TARGET(translations ALL DEPENDS ${_outputs})
+ENDMACRO(ADD_TRANSLATIONS)
\ No newline at end of file