annotate 3rdparty/vmime/cmake/FindIconv.cmake @ 0:a4671277546c tip

created the repository for the thymian project
author ferencd
date Tue, 17 Aug 2021 11:19:54 +0200
parents
children
rev   line source
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 )