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
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ace5ffa..b4047da 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -135,34 +135,37 @@
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)
+ find_package(Iconv)
- # Headers and libraries (copied from licq)
- set(GETTEXT_FOUND FALSE)
+ 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})
+ 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()