Browse Source

Merge topic 'add-FindIntl'

c5e797db FindIntl: New module to find Gettext libintl
Brad King 11 năm trước cách đây
mục cha
commit
307570aee1

+ 1 - 0
Help/manual/cmake-modules.7.rst

@@ -118,6 +118,7 @@ All Modules
    /module/FindIce
    /module/FindIcotool
    /module/FindImageMagick
+   /module/FindIntl
    /module/FindITK
    /module/FindJasper
    /module/FindJava

+ 1 - 0
Help/module/FindIntl.rst

@@ -0,0 +1 @@
+.. cmake-module:: ../../Modules/FindIntl.cmake

+ 3 - 0
Modules/FindGettext.cmake

@@ -50,6 +50,9 @@
 #      (by default use share/locale/).
 #      If ALL is specified, the po files are processed when building the all traget.
 #      It creates a custom target "pofiles".
+#
+# .. note::
+#   If you wish to use the Gettext library (libintl), use :module:`FindIntl`.
 
 #=============================================================================
 # Copyright 2007-2009 Kitware, Inc.

+ 69 - 0
Modules/FindIntl.cmake

@@ -0,0 +1,69 @@
+#.rst:
+# FindIntl
+# --------
+#
+# Find the Gettext libintl headers and libraries.
+#
+# This module reports information about the Gettext libintl
+# installation in several variables.  General variables::
+#
+#   Intl_FOUND - true if the libintl headers and libraries were found
+#   Intl_INCLUDE_DIRS - the directory containing the libintl headers
+#   Intl_LIBRARIES - libintl libraries to be linked
+#
+# The following cache variables may also be set::
+#
+#   Intl_INCLUDE_DIR - the directory containing the libintl headers
+#   Intl_LIBRARY - the libintl library (if any)
+#
+# .. note::
+#   On some platforms, such as Linux with GNU libc, the gettext
+#   functions are present in the C standard library and libintl
+#   is not required.  ``Intl_LIBRARIES`` will be empty in this
+#   case.
+#
+# .. note::
+#   If you wish to use the Gettext tools (``msgmerge``,
+#   ``msgfmt``, etc.), use :module:`FindGettext`.
+
+
+# Written by Roger Leigh <[email protected]>
+
+#=============================================================================
+# Copyright 2014 Roger Leigh <[email protected]>
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+#  License text for the above reference.)
+
+# Find include directory
+find_path(Intl_INCLUDE_DIR
+          NAMES "libintl.h"
+          DOC "libintl include directory")
+mark_as_advanced(Intl_INCLUDE_DIR)
+
+# Find all Intl libraries
+find_library(Intl_LIBRARY "intl"
+  DOC "libintl libraries (if not in the C library)")
+mark_as_advanced(Intl_LIBRARY)
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Intl
+                                  FOUND_VAR Intl_FOUND
+                                  REQUIRED_VARS Intl_INCLUDE_DIR
+                                  FAIL_MESSAGE "Failed to find Gettext libintl")
+
+if(Intl_FOUND)
+  set(Intl_INCLUDE_DIRS "${Intl_INCLUDE_DIR}")
+  if(Intl_LIBRARY)
+    set(Intl_LIBRARIES "${Intl_LIBRARY}")
+  else()
+    unset(Intl_LIBRARIES)
+  endif()
+endif()