You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CMakeLists.txt 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. # Gettext support - mostly borrowed from the Licq project
  2. set(po_FILES
  3. de fr pl ru sk sv
  4. )
  5. if (NOT GETTEXT_MSGMERGE_EXECUTABLE AND NOT GETTEXT_MSGFMT_EXECUTABLE)
  6. message(FATAL_ERROR "Gettext message catalog tools NOT found")
  7. endif (NOT GETTEXT_MSGMERGE_EXECUTABLE AND NOT GETTEXT_MSGFMT_EXECUTABLE)
  8. find_program(GETTEXT_XGETTEXT_EXECUTABLE xgettext)
  9. if (GETTEXT_XGETTEXT_EXECUTABLE)
  10. # Get list of all source files
  11. file(GLOB_RECURSE po_source
  12. RELATIVE ${PROJECT_SOURCE_DIR}
  13. ${PROJECT_SOURCE_DIR}/vncviewer/*.h
  14. ${PROJECT_SOURCE_DIR}/vncviewer/*.cxx
  15. )
  16. add_custom_target(translations_update
  17. ${GETTEXT_XGETTEXT_EXECUTABLE}
  18. --directory ${PROJECT_SOURCE_DIR}
  19. --output="${CMAKE_CURRENT_SOURCE_DIR}/tigervnc.pot"
  20. --default-domain=tigervnc
  21. --keyword=_
  22. --keyword=N_
  23. --copyright-holder='TigerVNC Team and many others (see README.txt)'
  24. --msgid-bugs-address="tigervnc-devel@lists.sourceforge.net"
  25. --sort-output
  26. --no-location
  27. ${po_source}
  28. COMMENT "Updating tigervnc.pot"
  29. )
  30. endif (GETTEXT_XGETTEXT_EXECUTABLE)
  31. foreach(lang ${po_FILES})
  32. set(po "${CMAKE_CURRENT_SOURCE_DIR}/${lang}.po")
  33. set(mo "${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo")
  34. # Update po files after pot file
  35. add_custom_command(TARGET translations_update POST_BUILD
  36. COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none
  37. --sort-output ${po} ${CMAKE_CURRENT_SOURCE_DIR}/tigervnc.pot
  38. COMMENT "Updating ${lang}.po"
  39. )
  40. # Add command to build X.mo from X.po
  41. add_custom_command(OUTPUT ${mo}
  42. COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${mo} ${po}
  43. DEPENDS ${po}
  44. )
  45. install(FILES ${mo}
  46. DESTINATION "${LOCALE_DIR}/${lang}/LC_MESSAGES"
  47. RENAME tigervnc.mo
  48. )
  49. set(moFiles ${moFiles} ${mo})
  50. endforeach(lang)
  51. add_custom_target(translations ALL DEPENDS ${moFiles})