File: FindIconv.cmake

package info (click to toggle)
instead 3.5.2%2Bdfsg-0.3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,316 kB
  • sloc: ansic: 28,336; sh: 452; makefile: 236
file content (53 lines) | stat: -rw-r--r-- 1,408 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# - Locate Iconv
# This module defines:
#
#  ICONV_INCLUDE_DIR
#  ICONV_LIBRARY
#  ICONV_FOUND
#

# Look for header file
FIND_PATH(ICONV_INCLUDE_DIR NAMES iconv.h)

# Check if library is needed
IF(ICONV_INCLUDE_DIR)
	SET(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR})
	TRY_COMPILE(ICONV_LIBRARY_NOT_NEEDED
		${CMAKE_BINARY_DIR}
		${CMAKE_MODULE_PATH}/iconv_test.c
		CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${ICONV_INCLUDE_DIR}"
	)

	IF(NOT ICONV_LIBRARY_NOT_NEEDED)
		# Locate library
		FIND_LIBRARY(ICONV_LIBRARY NAMES iconv libiconv)

		IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARY)
			SET(ICONV_FOUND TRUE)
		ENDIF(ICONV_INCLUDE_DIR AND ICONV_LIBRARY)
	ELSE(NOT ICONV_LIBRARY_NOT_NEEDED)
		# Library not needed
		SET(ICONV_LIBRARY)

		IF(ICONV_INCLUDE_DIR)
			SET(ICONV_FOUND TRUE)
		ENDIF(ICONV_INCLUDE_DIR)
	ENDIF(NOT ICONV_LIBRARY_NOT_NEEDED)
ENDIF(ICONV_INCLUDE_DIR)

# Show status
IF(ICONV_FOUND)
	IF(NOT Iconv_FIND_QUIETLY)
		IF(ICONV_LIBRARY_NOT_NEEDED)
			MESSAGE(STATUS "Found Iconv: -I${ICONV_INCLUDE_DIR}, library not needed")
		ELSE(ICONV_LIBRARY_NOT_NEEDED)
			MESSAGE(STATUS "Found Iconv: -I${ICONV_INCLUDE_DIR}, ${ICONV_LIBRARY}")
		ENDIF(ICONV_LIBRARY_NOT_NEEDED)
	ENDIF(NOT Iconv_FIND_QUIETLY)
ELSE(ICONV_FOUND)
	IF(Iconv_FIND_REQUIRED)
		MESSAGE(FATAL_ERROR "Could not find ICONV")
	ENDIF(Iconv_FIND_REQUIRED)
ENDIF(ICONV_FOUND)

MARK_AS_ADVANCED(ICONV_INCLUDE_DIR ICONV_LIBRARY ICONV_FOUND)