1# a small macro to create mo files out of po's 2# Taken from sim-im.org 3 4MACRO(FIND_MSGFMT) 5 IF(NOT MSGFMT_EXECUTABLE) 6 IF(NOT MSGFMT_NOT_FOUND) 7 SET(MSGFMT_NAME "msgfmt") 8 FIND_PROGRAM(MSGFMT_EXECUTABLE ${MSGFMT_NAME}) 9 10 IF (NOT MSGFMT_EXECUTABLE) 11 MESSAGE(STATUS "WARNING: ${MSGFMT_NAME} not found - po files can't be processed") 12 SET(MSGFMT_NOT_FOUND "1") # to avoid double checking in one cmake run 13 ENDIF (NOT MSGFMT_EXECUTABLE) 14 15 MARK_AS_ADVANCED(MSGFMT_EXECUTABLE) 16 ENDIF(NOT MSGFMT_NOT_FOUND) 17 ENDIF(NOT MSGFMT_EXECUTABLE) 18ENDMACRO(FIND_MSGFMT) 19 20MACRO(COMPILE_PO_FILES po_subdir _sources) 21 FIND_MSGFMT() 22 23 IF(MSGFMT_EXECUTABLE) 24 FILE(GLOB po_files ${po_subdir}/*.po) 25 26 FOREACH(po_input ${po_files}) 27 GET_FILENAME_COMPONENT(_in ${po_input} ABSOLUTE) 28 GET_FILENAME_COMPONENT(_basename ${po_input} NAME_WE) 29 30 FILE(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${_basename}") 31 GET_FILENAME_COMPONENT(_out "${CMAKE_CURRENT_BINARY_DIR}/${_basename}/avidemux.mo" ABSOLUTE) 32 33 ADD_CUSTOM_COMMAND( 34 OUTPUT ${_out} 35 COMMAND ${CMAKE_COMMAND} -E echo "Generating" ${_out} "from" ${_in} 36 COMMAND ${MSGFMT_EXECUTABLE} ${_in} -o ${_out} 37 DEPENDS ${_in}) 38 39 SET(mo_files ${mo_files} ${_out}) 40 41 INSTALL(FILES ${_out} DESTINATION "${CMAKE_INSTALL_PREFIX}/share/locale/${_basename}/LC_MESSAGES") 42 ENDFOREACH(po_input ${po_files}) 43 44 SET(${_sources} ${${_sources}} ${mo_files}) 45 ENDIF(MSGFMT_EXECUTABLE) 46ENDMACRO(COMPILE_PO_FILES) 47