diff options
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) |