Browse Source

Automatically disable NLS if gettext and/or libiconv are missing. On some platforms, such as Windows and OS X, NLS can't be enabled without a lot of custom configuration, so the build simply fails on those platforms unless -DENABLE_NLS=0 is specified. This change makes the CMake system behave more like autotools used to, and it is consistent with the detection behavior of other non-essential modules, such as GnuTLS.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4531 3789f03b-4d11-0410-bbf8-ca57d06f2519
tags/v1.1.90
DRC 13 years ago
parent
commit
2690f7ae11
1 changed files with 22 additions and 19 deletions
  1. 22
    19
      CMakeLists.txt

+ 22
- 19
CMakeLists.txt View File

@@ -135,34 +135,37 @@ endif()
option(ENABLE_NLS "Enable translation of program messages" ON)
if(ENABLE_NLS)
# Tools
find_package(Gettext REQUIRED)
find_package(Gettext)
set(LOCALE_DIR "${CMAKE_INSTALL_PREFIX}/share/locale")

# Gettext needs iconv
find_package(Iconv REQUIRED)

# Headers and libraries (copied from licq)
set(GETTEXT_FOUND FALSE)

find_path(GETTEXT_INCLUDE_DIR libintl.h)
if(GETTEXT_INCLUDE_DIR)
set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES})
check_function_exists(dgettext LIBC_HAS_DGETTEXT)
if(LIBC_HAS_DGETTEXT)
set(GETTEXT_FOUND TRUE)
else()
find_library(LIBINTL_LIBRARY NAMES intl libintl)
check_library_exists(${LIBINTL_LIBRARY} "dgettext" "" LIBINTL_HAS_DGETTEXT)
if(LIBINTL_HAS_DGETTEXT)
set(GETTEXT_LIBRARIES ${LIBINTL_LIBRARY} ${ICONV_LIBRARIES})
find_package(Iconv)

if(ICONV_FOUND)
# Headers and libraries (copied from licq)
set(GETTEXT_FOUND FALSE)

find_path(GETTEXT_INCLUDE_DIR libintl.h)
if(GETTEXT_INCLUDE_DIR)
set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES})
check_function_exists(dgettext LIBC_HAS_DGETTEXT)
if(LIBC_HAS_DGETTEXT)
set(GETTEXT_FOUND TRUE)
else()
find_library(LIBINTL_LIBRARY NAMES intl libintl)
check_library_exists(${LIBINTL_LIBRARY} "dgettext" "" LIBINTL_HAS_DGETTEXT)
if(LIBINTL_HAS_DGETTEXT)
set(GETTEXT_LIBRARIES ${LIBINTL_LIBRARY} ${ICONV_LIBRARIES})
set(GETTEXT_FOUND TRUE)
endif()
endif()
set(CMAKE_REQUIRED_LIBRARIES)
endif()
set(CMAKE_REQUIRED_LIBRARIES)
endif()

if(NOT GETTEXT_FOUND)
message(FATAL_ERROR "Gettext NOT found")
message(WARNING "Gettext NOT found. Native Language Support disabled.")
set(ENABLE_NLS 0)
endif()
endif()


Loading…
Cancel
Save