diff --git a/development/cmake/CMakeLists.txt b/development/cmake/CMakeLists.txt index 073e80f42a..1a70bda6e6 100644 --- a/development/cmake/CMakeLists.txt +++ b/development/cmake/CMakeLists.txt @@ -116,12 +116,20 @@ find_package(ZLIB REQUIRED) if(all OR aspell) set(aspell TRUE CACHE TYPE STRING) - find_package(ASPELL REQUIRED) + find_package(ASPELL REQUIRED) else() find_package(ASPELL) endif() set(aspell) +if(WIN32) + set(use_external_libintl TRUE) +endif() + +if(use_external_libintl) + find_package(Libintl REQUIRED) +endif() + message("") if(nls OR all) set(nls TRUE CACHE TYPE STRING) @@ -304,7 +312,9 @@ include_directories( ${TOP_SRC_DIR}/boost) add_subdirectory(boost) -add_subdirectory(intl) +if(NOT use_external_libintl) + add_subdirectory(intl) +endif() add_subdirectory(src) include(../Install) diff --git a/development/cmake/intl/CMakeLists.txt b/development/cmake/intl/CMakeLists.txt index b443a8ce89..313fa623f2 100644 --- a/development/cmake/intl/CMakeLists.txt +++ b/development/cmake/intl/CMakeLists.txt @@ -74,6 +74,7 @@ if(ICONV_FOUND) endif() add_library(intl STATIC ${intl_sources} ${intl_headers}) +set(LIBINTL_LIBRARIES intl) if(ICONV_FOUND) target_link_libraries(intl ${ICONV_LIBRARY}) diff --git a/development/cmake/modules/FindLibintl.cmake b/development/cmake/modules/FindLibintl.cmake new file mode 100644 index 0000000000..970ead2921 --- /dev/null +++ b/development/cmake/modules/FindLibintl.cmake @@ -0,0 +1,46 @@ +# Try to find Libintl functionality +# Once done this will define +# +# LIBINTL_FOUND - system has Libintl +# LIBINTL_INCLUDE_DIR - Libintl include directory +# LIBINTL_LIBRARIES - Libraries needed to use Libintl +# +# TODO: This will enable translations only if Gettext functionality is +# present in libc. Must have more robust system for release, where Gettext +# functionality can also reside in standalone Gettext library, or the one +# embedded within kdelibs (cf. gettext.m4 from Gettext source). + +# Copyright (c) 2006, Chusslove Illich, +# Copyright (c) 2007, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +if(LIBINTL_INCLUDE_DIR AND LIBINTL_LIB_FOUND) + set(Libintl_FIND_QUIETLY TRUE) +endif(LIBINTL_INCLUDE_DIR AND LIBINTL_LIB_FOUND) + +find_path(LIBINTL_INCLUDE_DIR libintl.h) + +set(LIBINTL_LIB_FOUND FALSE) + +if(LIBINTL_INCLUDE_DIR) + include(CheckFunctionExists) + check_function_exists(dgettext LIBINTL_LIBC_HAS_DGETTEXT) + + if (LIBINTL_LIBC_HAS_DGETTEXT) + set(LIBINTL_LIBRARIES) + set(LIBINTL_LIB_FOUND TRUE) + else (LIBINTL_LIBC_HAS_DGETTEXT) + find_library(LIBINTL_LIBRARIES NAMES intl libintl ) + if(LIBINTL_LIBRARIES) + set(LIBINTL_LIB_FOUND TRUE) + endif(LIBINTL_LIBRARIES) + endif (LIBINTL_LIBC_HAS_DGETTEXT) + +endif(LIBINTL_INCLUDE_DIR) + +#include(FindPackageHandleStandardArgs) +#find_package_handle_standard_args(Libintl DEFAULT_MSG LIBINTL_INCLUDE_DIR LIBINTL_LIB_FOUND) + +mark_as_advanced(LIBINTL_INCLUDE_DIR LIBINTL_LIBRARIES LIBINTL_LIBC_HAS_DGETTEXT LIBINTL_LIB_FOUND) diff --git a/development/cmake/src/CMakeLists.txt b/development/cmake/src/CMakeLists.txt index 271a738bd4..8299d9fd43 100644 --- a/development/cmake/src/CMakeLists.txt +++ b/development/cmake/src/CMakeLists.txt @@ -64,7 +64,8 @@ target_link_libraries(lyx frontend_qt4 graphics support - intl + ${LIBINTL_LIBRARIES} + ${ICONV_LIBRARY} ${QT_QTMAIN_LIBRARY} ${vld_dll}) diff --git a/development/cmake/src/tex2lyx/CMakeLists.txt b/development/cmake/src/tex2lyx/CMakeLists.txt index dcfb3b8215..6f2ae3210a 100644 --- a/development/cmake/src/tex2lyx/CMakeLists.txt +++ b/development/cmake/src/tex2lyx/CMakeLists.txt @@ -59,7 +59,8 @@ target_link_libraries(tex2lyx support boost_regex ${QT_QTCORE_LIBRARY} - intl) + ${LIBINTL_LIBRARIES} + ${ICONV_LIBRARY}) if(WIN32) target_link_libraries(tex2lyx shlwapi)