From f0aef5537ed90d0bbe1d4931bc57e74048174050 Mon Sep 17 00:00:00 2001
From: Steven Oliver <oliver.steven@gmail.com>
Date: Wed, 26 Sep 2012 21:46:26 -0400
Subject: [PATCH] Add new FindIconv module


Signed-off-by: Steven Oliver <oliver.steven@gmail.com>
---
 Modules/FindIconv.cmake | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)
 create mode 100644 Modules/FindIconv.cmake

diff --git a/Modules/FindIconv.cmake b/Modules/FindIconv.cmake
new file mode 100644
index 0000000..51d5f3b
--- /dev/null
+++ b/Modules/FindIconv.cmake
@@ -0,0 +1,47 @@
+# - Try to find Iconv
+# Once done this will define
+# 
+#  ICONV_FOUND - system has Iconv
+#  ICONV_INCLUDE_DIR - the Iconv include directory
+#  ICONV_LIBRARIES - Link these to use Iconv
+#  ICONV_VERSION - Iconv version string
+#  ICONV_SECOND_ARGUMENT_IS_CONST - the second argument for iconv() is const
+# 
+
+include(CheckCSourceCompiles)
+
+find_path(ICONV_INCLUDE_DIR iconv.h)
+find_library(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c)
+
+# handle the QUIETLY and REQUIRED arguments and set ICONV_FOUND to TRUE if
+# all listed variables are TRUE
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(ICONV REQUIRED_VARS ICONV_LIBRARY ICONV_INCLUDE_DIR
+                                          VERSION_VAR ICONV_VERSION)
+
+if (ICONV_FOUND)
+  set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR})
+  set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES})
+
+  check_c_source_compiles("
+  #include <iconv.h>
+  int main(){
+    iconv_t conv = 0;
+    const char* in = 0;
+    size_t ilen = 0;
+    char* out = 0;
+    size_t olen = 0;
+    iconv(conv, &in, &ilen, &out, &olen);
+    return 0;
+  }
+" ICONV_SECOND_ARGUMENT_IS_CONST )
+
+  set(CMAKE_REQUIRED_INCLUDES)
+  set(CMAKE_REQUIRED_LIBRARIES)
+endif(ICONV_FOUND)
+
+mark_as_advanced(
+  ICONV_INCLUDE_DIR
+  ICONV_LIBRARIES
+  ICONV_SECOND_ARGUMENT_IS_CONST
+)
-- 
1.7.11.4

