Browse 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 13 years ago
parent
commit
bb445ef944
3 changed files with 69 additions and 1 deletions
  1. 7
    1
      CMakeLists.txt
  2. 1
    0
      config.h.cmake.in
  3. 61
    0
      po/CMakeLists.txt

+ 7
- 1
CMakeLists.txt View File

@@ -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 View File

@@ -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 View File

@@ -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})

Loading…
Cancel
Save