File: FindGD.cmake

package info (click to toggle)
mapserver 8.6.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 18,492 kB
  • sloc: ansic: 137,759; cpp: 124,149; python: 3,175; xml: 1,722; yacc: 1,114; cs: 1,001; sh: 836; lex: 778; java: 588; perl: 489; makefile: 383; tcl: 158; ruby: 55
file content (100 lines) | stat: -rw-r--r-- 3,030 bytes parent folder | download | duplicates (11)
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# - Find GD
# Find the native GD includes and library
# This module defines
#  GD_INCLUDE_DIR, where to find gd.h, etc.
#  GD_LIBRARIES, the libraries needed to use GD.
#  GD_FOUND, If false, do not try to use GD.
# also defined, but not for general use are
#  GD_LIBRARY, where to find the GD library.
#  GD_SUPPORTS_PNG, GD_SUPPORTS_JPEG, GD_SUPPORTS_GIF, test
#  support for image formats in GD.

FIND_PATH(GD_INCLUDE_DIR gd.h
/usr/local/include
/usr/include
)

if(WIN32 AND NOT CYGWIN)
  SET(GD_NAMES ${GD_NAMES} bgd)
else(WIN32)
  SET(GD_NAMES ${GD_NAMES} gd)
endif(WIN32 AND NOT CYGWIN)

FIND_LIBRARY(GD_LIBRARY
  NAMES ${GD_NAMES}
  PATHS /usr/lib64 /usr/lib /usr/local/lib
  )

IF (GD_LIBRARY AND GD_INCLUDE_DIR)
    SET(GD_LIBRARIES ${GD_LIBRARY})
    SET(GD_FOUND "YES")
ELSE (GD_LIBRARY AND GD_INCLUDE_DIR)
  SET(GD_FOUND "NO")
ENDIF (GD_LIBRARY AND GD_INCLUDE_DIR)

IF (GD_FOUND)
	IF (WIN32 AND NOT CYGWIN)
		SET(GD_SUPPORTS_PNG ON)
		SET(GD_SUPPORTS_JPEG ON)
		SET(GD_SUPPORTS_GIF ON)
		SET(GD_SUPPORTS_FREETYPE ON)
		get_filename_component(GD_LIBRARY_DIR ${GD_LIBRARY} PATH)
	ELSE (WIN32 AND NOT CYGWIN)
		INCLUDE(CheckLibraryExists)
		GET_FILENAME_COMPONENT(GD_LIB_PATH ${GD_LIBRARY} PATH)
		GET_FILENAME_COMPONENT(GD_LIB ${GD_LIBRARY} NAME)

		CHECK_LIBRARY_EXISTS("${GD_LIBRARY}" "gdImagePng" "${GD_LIB_PATH}" GD_SUPPORTS_PNG)
		CHECK_LIBRARY_EXISTS("${GD_LIBRARY}" "gdImageJpeg" "${GD_LIB_PATH}" GD_SUPPORTS_JPEG)
		CHECK_LIBRARY_EXISTS("${GD_LIBRARY}" "gdImageGif" "${GD_LIB_PATH}" GD_SUPPORTS_GIF)
		CHECK_LIBRARY_EXISTS("${GD_LIBRARY}" "gdFontCacheSetup" "${GD_LIB_PATH}" GD_SUPPORTS_FREETYPE)

		# Trim the list of include directories
		SET(GDINCTRIM)
		FOREACH(GD_DIR ${GD_INCLUDE_DIR})
			SET(GD_TMP_FOUND OFF)
			FOREACH(GD_TRIMMED ${GDINCTRIM})
				IF ("${GD_DIR}" STREQUAL "${GD_TRIMMED}")
				SET(GD_TMP_FOUND ON)
				ENDIF ("${GD_DIR}" STREQUAL "${GD_TRIMMED}")
			ENDFOREACH(GD_TRIMMED ${GDINCTRIM})
			IF (NOT GD_TMP_FOUND)
				SET(GDINCTRIM "${GDINCTRIM}" "${GD_DIR}")
			ENDIF (NOT GD_TMP_FOUND)
		ENDFOREACH(GD_DIR ${GD_INCLUDE_DIR})
		SET(GD_INCLUDE_DIR ${GDINCTRIM})

		SET(GD_LIBRARY_DIR)

		# Generate trimmed list of library directories and list of libraries
		FOREACH(GD_LIB ${GD_LIBRARIES})
			GET_FILENAME_COMPONENT(GD_NEXTLIBDIR ${GD_LIB} PATH)
			SET(GD_TMP_FOUND OFF)
			FOREACH(GD_LIBDIR ${GD_LIBRARY_DIR})
				IF ("${GD_NEXTLIBDIR}" STREQUAL "${GD_LIBDIR}")
					SET(GD_TMP_FOUND ON)
				ENDIF ("${GD_NEXTLIBDIR}" STREQUAL "${GD_LIBDIR}")
			ENDFOREACH(GD_LIBDIR ${GD_LIBRARIES})
			IF (NOT GD_TMP_FOUND)
				SET(GD_LIBRARY_DIR "${GD_LIBRARY_DIR}" "${GD_NEXTLIBDIR}")
			ENDIF (NOT GD_TMP_FOUND)
		ENDFOREACH(GD_LIB ${GD_LIBRARIES})
	ENDIF (WIN32 AND NOT CYGWIN)
ENDIF (GD_FOUND)

IF (!GD_FOUND)
   IF (GD_FIND_REQUIRED)
      MESSAGE(FATAL_ERROR "Could not find GD library")
   ENDIF (GD_FIND_REQUIRED)
ENDIF (!GD_FOUND)

MARK_AS_ADVANCED(
  GD_LIBRARY
  GD_LIBRARIES
  GD_INCLUDE_DIR
  GD_LIBRARY_DIR
  GD_SUPPORTS_PNG
  GD_SUPPORTS_JPEG
  GD_SUPPORTS_GIF
  GD_SUPPORTS_FREETYPE
)