# Gettext support - mostly borrowed from the Licq project set(po_FILES de fr pl ru sk sv ) if (NOT GETTEXT_MSGMERGE_EXECUTABLE AND NOT GETTEXT_MSGFMT_EXECUTABLE) message(FATAL_ERROR "Gettext message catalog tools NOT found") endif (NOT GETTEXT_MSGMERGE_EXECUTABLE AND NOT GETTEXT_MSGFMT_EXECUTABLE) find_program(GETTEXT_XGETTEXT_EXECUTABLE xgettext) if (GETTEXT_XGETTEXT_EXECUTABLE) # Get list of all source files file(GLOB_RECURSE po_source RELATIVE ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/vncviewer/*.h ${PROJECT_SOURCE_DIR}/vncviewer/*.cxx ) add_custom_target(translations_update ${GETTEXT_XGETTEXT_EXECUTABLE} --directory ${PROJECT_SOURCE_DIR} --output="${CMAKE_CURRENT_SOURCE_DIR}/tigervnc.pot" --default-domain=tigervnc --keyword=_ --keyword=N_ --copyright-holder='TigerVNC Team and many others (see README.txt)' --msgid-bugs-address="tigervnc-devel@lists.sourceforge.net" --sort-output --no-location ${po_source} COMMENT "Updating tigervnc.pot" ) endif (GETTEXT_XGETTEXT_EXECUTABLE) foreach(lang ${po_FILES}) set(po "${CMAKE_CURRENT_SOURCE_DIR}/${lang}.po") set(mo "${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo") # Update po files after pot file add_custom_command(TARGET translations_update POST_BUILD COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none --sort-output ${po} ${CMAKE_CURRENT_SOURCE_DIR}/tigervnc.pot COMMENT "Updating ${lang}.po" ) # Add command to build X.mo from X.po add_custom_command(OUTPUT ${mo} COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${mo} ${po} DEPENDS ${po} ) install(FILES ${mo} DESTINATION "${LOCALE_DIR}/${lang}/LC_MESSAGES" RENAME tigervnc.mo ) set(moFiles ${moFiles} ${mo}) endforeach(lang) add_custom_target(translations ALL DEPENDS ${moFiles})