diff options
author | Alexis Hildebrandt <afh@surryhill.net> | 2014-02-26 13:55:43 +0100 |
---|---|---|
committer | ashleyh <gh@ashleyh.eu> | 2014-02-27 19:11:48 +0000 |
commit | 05b9e11584c30c03cb911bf909374c86450ee13e (patch) | |
tree | b6ed38e24df01346535aeeac552ce14b6db6eec9 /cmake/FindLibIntl.cmake | |
parent | fba074d99440f58d534d18ff8adbd6ca8c7be675 (diff) | |
download | rneovim-05b9e11584c30c03cb911bf909374c86450ee13e.tar.gz rneovim-05b9e11584c30c03cb911bf909374c86450ee13e.tar.bz2 rneovim-05b9e11584c30c03cb911bf909374c86450ee13e.zip |
CMakeLists: Improve handling of libintl
by refactoring it into a separate CMake module
Diffstat (limited to 'cmake/FindLibIntl.cmake')
-rw-r--r-- | cmake/FindLibIntl.cmake | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/cmake/FindLibIntl.cmake b/cmake/FindLibIntl.cmake new file mode 100644 index 0000000000..ef7e3c10fd --- /dev/null +++ b/cmake/FindLibIntl.cmake @@ -0,0 +1,54 @@ +# - Try to find libintl +# Once done, this will define +# +# LibIntl_FOUND - system has libintl +# LibIntl_INCLUDE_DIRS - the libintl include directories +# LibIntl_LIBRARIES - link these to use libintl + +include(CheckCSourceCompiles) +include(LibFindMacros) + +# Append custom gettext path to CMAKE_PREFIX_PATH +# if installed via Mac Hombrew +if (CMAKE_HOST_APPLE) + find_program(HOMEBREW_PROG brew) + if (EXISTS ${HOMEBREW_PROG}) + execute_process(COMMAND ${HOMEBREW_PROG} --prefix gettext + OUTPUT_STRIP_TRAILING_WHITESPACE + OUTPUT_VARIABLE HOMEBREW_GETTEXT_PREFIX) + list(APPEND CMAKE_PREFIX_PATH "${HOMEBREW_GETTEXT_PREFIX}") + endif() +endif() + +find_path(LibIntl_INCLUDE_DIR + NAMES libintl.h +) + +find_library(LibIntl_LIBRARY + NAMES intl libintl.a +) + +if (LibIntl_INCLUDE_DIR) + set(CMAKE_REQUIRED_INCLUDES "${LibIntl_INCLUDE_DIR}") +endif() + +# This is required because some operating systems don't have a separate +# libintl--it is built into glibc. So we only need to specify the library +# if one was actually found. +if (LibIntl_LIBRARY) + set(CMAKE_REQUIRED_LIBRARIES "${LibIntl_LIBRARY}") +endif() + +check_c_source_compiles(" +#include <libintl.h> + +int main(int argc, char** argv) { + gettext(\"foo\"); + bindtextdomain(\"foo\", \"bar\"); + bind_textdomain_codeset(\"foo\", \"bar\"); + textdomain(\"foo\"); +}" HAVE_WORKING_LIBINTL) + +set(LibIntl_PROCESS_INCLUDES LibIntl_INCLUDE_DIR) +set(LibIntl_PROCESS_LIBS LibIntl_LIBRARY) +libfind_process(LibIntl) |