FindIconv.cmake 1.26 KB
Newer Older
1 2 3 4 5 6 7 8
# - 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
#

Sascha Cunz committed
9
IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
10 11
	# Already in cache, be silent
	SET(ICONV_FIND_QUIETLY TRUE)
Sascha Cunz committed
12
ENDIF()
13 14

FIND_PATH(ICONV_INCLUDE_DIR iconv.h)
15
CHECK_FUNCTION_EXISTS(iconv_open libc_has_iconv)
16
FIND_LIBRARY(iconv_lib NAMES iconv libiconv libiconv-2 c)
17

18 19 20 21 22 23 24 25 26 27
IF(ICONV_INCLUDE_DIR AND libc_has_iconv)
	SET(ICONV_FOUND TRUE)
	SET(ICONV_LIBRARIES "")
	IF(NOT ICONV_FIND_QUIETLY)
		MESSAGE(STATUS "Found Iconv: provided by libc")
	ENDIF(NOT ICONV_FIND_QUIETLY)
ELSEIF(ICONV_INCLUDE_DIR AND iconv_lib)
	SET(ICONV_FOUND TRUE)
	# split iconv into -L and -l linker options, so we can
	# set them for pkg-config
28 29 30
	GET_FILENAME_COMPONENT(iconv_path ${iconv_lib} PATH)
	GET_FILENAME_COMPONENT(iconv_name ${iconv_lib} NAME_WE)
	STRING(REGEX REPLACE "^lib" "" iconv_name ${iconv_name})
31
	SET(ICONV_LIBRARIES "-L${iconv_path} -l${iconv_name}")
32

33 34 35
	IF(NOT ICONV_FIND_QUIETLY)
		MESSAGE(STATUS "Found Iconv: ${ICONV_LIBRARIES}")
	ENDIF(NOT ICONV_FIND_QUIETLY)
Sascha Cunz committed
36
ELSE()
37 38 39
	IF(Iconv_FIND_REQUIRED)
		MESSAGE(FATAL_ERROR "Could not find Iconv")
	ENDIF(Iconv_FIND_REQUIRED)
Sascha Cunz committed
40
ENDIF()
41 42 43 44 45

MARK_AS_ADVANCED(
	ICONV_INCLUDE_DIR
	ICONV_LIBRARIES
)