|
ferencd@0
|
1 # - Try to find Iconv
|
|
ferencd@0
|
2 # Once done this will define
|
|
ferencd@0
|
3 #
|
|
ferencd@0
|
4 # ICONV_FOUND - system has Iconv
|
|
ferencd@0
|
5 # ICONV_INCLUDE_DIR - the Iconv include directory
|
|
ferencd@0
|
6 # ICONV_LIBRARIES - Link these to use Iconv
|
|
ferencd@0
|
7 # ICONV_SECOND_ARGUMENT_IS_CONST - the second argument for iconv() is const
|
|
ferencd@0
|
8 #
|
|
ferencd@0
|
9 include(CheckCXXSourceCompiles)
|
|
ferencd@0
|
10
|
|
ferencd@0
|
11 IF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
|
|
ferencd@0
|
12 # Already in cache, be silent
|
|
ferencd@0
|
13 SET(ICONV_FIND_QUIETLY TRUE)
|
|
ferencd@0
|
14 ENDIF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
|
|
ferencd@0
|
15
|
|
ferencd@0
|
16 FIND_PATH(ICONV_INCLUDE_DIR iconv.h)
|
|
ferencd@0
|
17
|
|
ferencd@0
|
18 IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
|
ferencd@0
|
19 FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c HINTS "/opt/local/lib")
|
|
ferencd@0
|
20 ELSE()
|
|
ferencd@0
|
21 FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c)
|
|
ferencd@0
|
22 ENDIF()
|
|
ferencd@0
|
23
|
|
ferencd@0
|
24 IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
|
|
ferencd@0
|
25 SET(ICONV_FOUND TRUE)
|
|
ferencd@0
|
26 ENDIF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
|
|
ferencd@0
|
27
|
|
ferencd@0
|
28 set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR})
|
|
ferencd@0
|
29 set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES})
|
|
ferencd@0
|
30 IF(ICONV_FOUND)
|
|
ferencd@0
|
31 check_cxx_source_compiles("
|
|
ferencd@0
|
32 #include <iconv.h>
|
|
ferencd@0
|
33 int main(){
|
|
ferencd@0
|
34 iconv_t conv = 0;
|
|
ferencd@0
|
35 const char* in = 0;
|
|
ferencd@0
|
36 size_t ilen = 0;
|
|
ferencd@0
|
37 char* out = 0;
|
|
ferencd@0
|
38 size_t olen = 0;
|
|
ferencd@0
|
39 iconv(conv, &in, &ilen, &out, &olen);
|
|
ferencd@0
|
40 return 0;
|
|
ferencd@0
|
41 }
|
|
ferencd@0
|
42 " ICONV_SECOND_ARGUMENT_IS_CONST )
|
|
ferencd@0
|
43 ENDIF(ICONV_FOUND)
|
|
ferencd@0
|
44 set(CMAKE_REQUIRED_INCLUDES)
|
|
ferencd@0
|
45 set(CMAKE_REQUIRED_LIBRARIES)
|
|
ferencd@0
|
46
|
|
ferencd@0
|
47 IF(ICONV_FOUND)
|
|
ferencd@0
|
48 IF(NOT ICONV_FIND_QUIETLY)
|
|
ferencd@0
|
49 MESSAGE(STATUS "Found Iconv: ${ICONV_LIBRARIES}")
|
|
ferencd@0
|
50 ENDIF(NOT ICONV_FIND_QUIETLY)
|
|
ferencd@0
|
51 ELSE(ICONV_FOUND)
|
|
ferencd@0
|
52 IF(Iconv_FIND_REQUIRED)
|
|
ferencd@0
|
53 MESSAGE(FATAL_ERROR "Could not find Iconv")
|
|
ferencd@0
|
54 ENDIF(Iconv_FIND_REQUIRED)
|
|
ferencd@0
|
55 ENDIF(ICONV_FOUND)
|
|
ferencd@0
|
56
|
|
ferencd@0
|
57 MARK_AS_ADVANCED(
|
|
ferencd@0
|
58 ICONV_INCLUDE_DIR
|
|
ferencd@0
|
59 ICONV_LIBRARIES
|
|
ferencd@0
|
60 ICONV_SECOND_ARGUMENT_IS_CONST
|
|
ferencd@0
|
61 )
|