From 1cc8d9245ea8afbccc57161ffee2694f3c7f4594 Mon Sep 17 00:00:00 2001 From: Marco Gittler Date: Wed, 26 Mar 2008 00:39:08 +0000 Subject: [PATCH] missing cmake module file for translation svn path=/branches/KDE4/; revision=2123 --- cmake/modules/FindMSGFMT.cmake | 50 ++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 cmake/modules/FindMSGFMT.cmake diff --git a/cmake/modules/FindMSGFMT.cmake b/cmake/modules/FindMSGFMT.cmake new file mode 100644 index 00000000..c7cbd577 --- /dev/null +++ b/cmake/modules/FindMSGFMT.cmake @@ -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 -- 2.39.5