- PATHS "${CUSTOM_GETTEXT_PATH}/bin"
- DOC "Path to msgfmt")
-
-set(GETTEXT_REQUIRED_VARS GETTEXT_INCLUDE_DIR GETTEXT_MSGFMT)
-
-if(APPLE)
- find_library(GETTEXT_LIBRARY
- NAMES libintl.a
- PATHS "${CUSTOM_GETTEXT_PATH}/lib"
- DOC "GetText library")
-
- find_library(ICONV_LIBRARY
- NAMES libiconv.dylib
- PATHS "/usr/lib"
- DOC "IConv library")
- set(GETTEXT_REQUIRED_VARS ${GETTEXT_REQUIRED_VARS} GETTEXT_LIBRARY ICONV_LIBRARY)
-endif(APPLE)
-
-# Modern Linux, as well as OSX, does not require special linking because
-# GetText is part of glibc.
-# TODO: check the requirements on other BSDs and older Linux
-if(WIN32)
- if(MSVC)
- set(GETTEXT_LIB_NAMES
- libintl.lib intl.lib libintl3.lib intl3.lib)
+ DOC "Path to Gettext msgfmt")
+
+if(GETTEXT_INCLUDE_DIR AND GETTEXT_LIBRARY)
+ # This is only really used on Windows
+ find_path(GETTEXT_INCLUDE_DIR NAMES libintl.h)
+ find_library(GETTEXT_LIBRARY NAMES intl)
+
+ set(GETTEXT_REQUIRED_VARS GETTEXT_INCLUDE_DIR GETTEXT_LIBRARY GETTEXT_MSGFMT)
+else()
+ find_package(Intl)
+ set(GETTEXT_INCLUDE_DIR ${Intl_INCLUDE_DIRS})
+ set(GETTEXT_LIBRARY ${Intl_LIBRARIES})
+
+ # Because intl may be part of the libc it's valid for the two variables to
+ # be empty, therefore we can't just put them into GETTEXT_REQUIRED_VARS.
+ if(Intl_FOUND)
+ set(GETTEXT_REQUIRED_VARS GETTEXT_MSGFMT)