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})