Parcourir la source

This patch adds gettext support for our new vncviewer. CMake only. The

change of the project name is to make the CMake build behave like the
Autotools build - define PACKAGE_NAME in the same way.



git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4388 3789f03b-4d11-0410-bbf8-ca57d06f2519
tags/v1.1.90
Peter Åstrand il y a 13 ans
Parent
révision
bb445ef944
3 fichiers modifiés avec 69 ajouts et 1 suppressions
  1. 7
    1
      CMakeLists.txt
  2. 1
    0
      config.h.cmake.in
  3. 61
    0
      po/CMakeLists.txt

+ 7
- 1
CMakeLists.txt Voir le fichier

@@ -10,7 +10,7 @@ include(CheckTypeSize)
include(CheckCSourceCompiles)
include(CheckCXXSourceCompiles)

project(TigerVNC)
project(tigervnc)
set(VERSION 1.0.90)

# The RC version must always be four comma-separated numbers
@@ -123,6 +123,11 @@ if(NOT ZLIB_FOUND)
set(USE_INCLUDED_ZLIB 1)
endif()

# Check for gettext
option(ENABLE_NLS "Enable translation of program messages" ON)
find_package(Gettext)
set(LOCALE_DIR "${CMAKE_INSTALL_PREFIX}/share/locale")

# Check for libjpeg
find_package(JPEG REQUIRED)

@@ -199,5 +204,6 @@ else()
endif()

if(BUILD_NEW_VNCVIEWER)
add_subdirectory(po)
add_subdirectory(vncviewer)
endif()

+ 1
- 0
config.h.cmake.in Voir le fichier

@@ -12,6 +12,7 @@
#cmakedefine HAVE_GNUTLS_PK_ALGORITHM_T
#cmakedefine HAVE_GNUTLS_SIGN_ALGORITHM_T
#cmakedefine HAVE_FLTK_DEAD_KEYS
#cmakedefine ENABLE_NLS 1

/* MS Visual Studio 2008 and newer doesn't know ssize_t */
#if defined(HAVE_GNUTLS) && defined(WIN32) && !defined(__MINGW32__)

+ 61
- 0
po/CMakeLists.txt Voir le fichier

@@ -0,0 +1,61 @@
# 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='RealVNC Ltd, Constantin Kaplinsky, Peter Astrand, Cendio AB'
--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})

Chargement…
Annuler
Enregistrer