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.7KB

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