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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. # Gettext support - mostly borrowed from the Licq project
  2. file(STRINGS LINGUAS po_FILES)
  3. set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS LINGUAS)
  4. if (NOT GETTEXT_MSGMERGE_EXECUTABLE AND NOT GETTEXT_MSGFMT_EXECUTABLE)
  5. message(FATAL_ERROR "Gettext message catalog tools NOT found")
  6. endif (NOT GETTEXT_MSGMERGE_EXECUTABLE AND NOT GETTEXT_MSGFMT_EXECUTABLE)
  7. find_program(GETTEXT_XGETTEXT_EXECUTABLE xgettext)
  8. if (GETTEXT_XGETTEXT_EXECUTABLE)
  9. # Get list of all source files
  10. file(GLOB_RECURSE po_source
  11. RELATIVE ${PROJECT_SOURCE_DIR}
  12. ${PROJECT_SOURCE_DIR}/vncviewer/*.h
  13. ${PROJECT_SOURCE_DIR}/vncviewer/*.cxx
  14. ${PROJECT_SOURCE_DIR}/vncviewer/*.desktop.in.in
  15. ${PROJECT_SOURCE_DIR}/vncviewer/*.metainfo.xml.in
  16. )
  17. add_custom_target(translations_update
  18. ${GETTEXT_XGETTEXT_EXECUTABLE}
  19. "--directory=${PROJECT_SOURCE_DIR}"
  20. "--output=${CMAKE_CURRENT_SOURCE_DIR}/tigervnc.pot"
  21. --default-domain=tigervnc
  22. --keyword=_
  23. --keyword=p_:1c,2
  24. --keyword=N_
  25. "--copyright-holder=TigerVNC Team and many others \(see README.rst\)"
  26. --msgid-bugs-address=tigervnc-devel@googlegroups.com
  27. --sort-by-file
  28. --add-location
  29. --add-comments=TRANSLATORS
  30. ${po_source}
  31. COMMENT "Updating tigervnc.pot"
  32. VERBATIM
  33. )
  34. endif (GETTEXT_XGETTEXT_EXECUTABLE)
  35. foreach(lang ${po_FILES})
  36. set(po "${CMAKE_CURRENT_SOURCE_DIR}/${lang}.po")
  37. set(mo "${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo")
  38. # Add command to build X.mo from X.po
  39. add_custom_command(OUTPUT ${mo}
  40. COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} --check --check-accelerators -o ${mo} ${po}
  41. DEPENDS ${po}
  42. )
  43. install(FILES ${mo}
  44. DESTINATION "${CMAKE_INSTALL_FULL_LOCALEDIR}/${lang}/LC_MESSAGES"
  45. RENAME tigervnc.mo
  46. )
  47. set(moFiles ${moFiles} ${mo})
  48. endforeach(lang)
  49. add_custom_target(translations ALL DEPENDS ${moFiles})