diff options
Diffstat (limited to 'cmake')
| -rw-r--r-- | cmake/FindGettext.cmake | 65 | ||||
| -rw-r--r-- | cmake/Po.cmake | 54 |
2 files changed, 65 insertions, 54 deletions
diff --git a/cmake/FindGettext.cmake b/cmake/FindGettext.cmake new file mode 100644 index 0000000..14ea623 --- /dev/null +++ b/cmake/FindGettext.cmake @@ -0,0 +1,65 @@ +# - Find GNU gettext tools
+# This module looks for the GNU gettext tools. This module defines the
+# following values:
+# GETTEXT_MSGMERGE_EXECUTABLE: the full path to the msgmerge tool.
+# GETTEXT_MSGFMT_EXECUTABLE: the full path to the msgfmt tool.
+# GETTEXT_FOUND: True if gettext has been found.
+#
+# Additionally it provides the following macros:
+# GETTEXT_CREATE_TRANSLATIONS ( outputFile [ALL] file1 ... fileN )
+# This will create a target "translations" which will convert the
+# given input po files into the binary output mo file. If the
+# ALL option is used, the translations will also be created when
+# building the default target.
+
+
+
+FIND_PROGRAM(GETTEXT_MSGMERGE_EXECUTABLE msgmerge)
+
+FIND_PROGRAM(GETTEXT_MSGFMT_EXECUTABLE msgfmt)
+
+MACRO(GETTEXT_CREATE_TRANSLATIONS _potFile _firstPoFile)
+
+ SET(_gmoFiles)
+ GET_FILENAME_COMPONENT(_potBasename ${_potFile} NAME_WE)
+ GET_FILENAME_COMPONENT(_absPotFile ${_potFile} ABSOLUTE)
+
+ SET(_addToAll)
+ IF(${_firstPoFile} STREQUAL "ALL")
+ SET(_addToAll "ALL")
+ SET(_firstPoFile)
+ ENDIF(${_firstPoFile} STREQUAL "ALL")
+
+ FOREACH (_currentPoFile ${ARGN})
+ GET_FILENAME_COMPONENT(_absFile ${_currentPoFile} ABSOLUTE)
+ GET_FILENAME_COMPONENT(_abs_PATH ${_absFile} PATH)
+ GET_FILENAME_COMPONENT(_lang ${_absFile} NAME_WE)
+ SET(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo)
+
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${_gmoFile}
+ COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -s ${_absFile} ${_absPotFile}
+ COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_absFile}
+ DEPENDS ${_absPotFile} ${_absFile}
+ )
+
+ INSTALL(FILES ${_gmoFile} DESTINATION share/locale/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo)
+ SET(_gmoFiles ${_gmoFiles} ${_gmoFile})
+
+ ENDFOREACH (_currentPoFile )
+
+ ADD_CUSTOM_TARGET(translations ${_addToAll} DEPENDS ${_gmoFiles})
+
+ENDMACRO(GETTEXT_CREATE_TRANSLATIONS )
+
+IF (GETTEXT_MSGMERGE_EXECUTABLE AND GETTEXT_MSGFMT_EXECUTABLE )
+ SET(GETTEXT_FOUND TRUE)
+ELSE (GETTEXT_MSGMERGE_EXECUTABLE AND GETTEXT_MSGFMT_EXECUTABLE )
+ SET(GETTEXT_FOUND FALSE)
+ IF (GetText_REQUIRED)
+ MESSAGE(FATAL_ERROR "GetText not found")
+ ENDIF (GetText_REQUIRED)
+ENDIF (GETTEXT_MSGMERGE_EXECUTABLE AND GETTEXT_MSGFMT_EXECUTABLE )
+
+
+
diff --git a/cmake/Po.cmake b/cmake/Po.cmake deleted file mode 100644 index 8c6d5f0..0000000 --- a/cmake/Po.cmake +++ /dev/null @@ -1,54 +0,0 @@ -# a small macro to create mo files out of po's -# Taken from sim-im.org - -MACRO(FIND_MSGFMT) - IF(NOT MSGFMT_EXECUTABLE) - IF(NOT MSGFMT_NOT_FOUND) - SET(MSGFMT_NAME "msgfmt") - FIND_PROGRAM(MSGFMT_EXECUTABLE ${MSGFMT_NAME}) - - IF (NOT MSGFMT_EXECUTABLE) - MESSAGE(FATAL_ERROR "${MSGFMT_NAME} not found - po files can't be processed") - SET(MSGFMT_NOT_FOUND "1") # to avoid double checking in one cmake run - ENDIF (NOT MSGFMT_EXECUTABLE) - - MARK_AS_ADVANCED(MSGFMT_EXECUTABLE) - ENDIF(NOT MSGFMT_NOT_FOUND) - ENDIF(NOT MSGFMT_EXECUTABLE) -ENDMACRO(FIND_MSGFMT) - -MACRO(COMPILE_PO_FILES po_subdir _sources) - FIND_MSGFMT() - SET(_basename avidemux2) - - IF(MSGFMT_EXECUTABLE) - FILE(GLOB po_files ${po_subdir}/*.po) - - FOREACH(po_input ${po_files}) - - GET_FILENAME_COMPONENT(_in ${po_input} ABSOLUTE) - GET_FILENAME_COMPONENT(_basename ${po_input} NAME_WE) - - FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) - GET_FILENAME_COMPONENT(_out ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.mo ABSOLUTE) - - ADD_CUSTOM_COMMAND( - OUTPUT ${_out} - COMMAND ${CMAKE_COMMAND} - -E echo - "Generating" ${_out} "from" ${_in} - COMMAND ${MSGFMT_EXECUTABLE} - ${_in} - -o ${_out} - DEPENDS ${_in} - ) - - SET(mo_files ${mo_files} ${_out}) - - INSTALL(FILES ${_out} DESTINATION "${CMAKE_INSTALL_PREFIX}/share/locale/${_basename}/LC_MESSAGES" RENAME avidemux.mo) - ENDFOREACH(po_input ${po_files}) - - SET(${_sources} ${${_sources}} ${mo_files}) - ENDIF(MSGFMT_EXECUTABLE) -ENDMACRO(COMPILE_PO_FILES) - |