Fix:graphics_win32:Transform non-opaque, grayscale etc png files to RGBA format properly.
[profile/ivi/navit.git] / navit / cmake / FindGTK2.cmake
1 # - Try to find GTK2
2 # Once done this will define
3 #
4 #  GTK2_FOUND - System has Boost
5 #  GTK2_INCLUDE_DIRS - GTK2 include directory
6 #  GTK2_LIBRARIES - Link these to use GTK2
7 #  GTK2_LIBRARY_DIRS - The path to where the GTK2 library files are.
8 #  GTK2_DEFINITIONS - Compiler switches required for using GTK2
9 #
10 #  Copyright (c) 2007 Andreas Schneider <mail@cynapses.org>
11 #
12 #  Redistribution and use is allowed according to the terms of the New
13 #  BSD license.
14 #  For details see the accompanying COPYING-CMAKE-SCRIPTS file.
15 #
16
17 set(GTK2_DEBUG ON)
18
19 macro(GTK2_DEBUG_MESSAGE _message)
20   if (GTK2_DEBUG)
21     message(STATUS "(DEBUG) ${_message}")
22   endif (GTK2_DEBUG)
23 endmacro(GTK2_DEBUG_MESSAGE _message)
24
25 if (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)
26   # in cache already
27   set(GTK2_FOUND TRUE)
28 else (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)
29
30     # use pkg-config to get the directories and then use these values
31     # in the FIND_PATH() and FIND_LIBRARY() calls
32     include(UsePkgConfig)
33
34     pkgconfig(gtk+-2.0 _GTK2IncDir _GTK2LinkDir _GTK2LinkFlags _GTK2Cflags)
35
36     find_path(GTK2_GTK_INCLUDE_DIR
37       NAMES
38         gtk/gtk.h
39       PATHS
40         $ENV{GTK2_HOME}
41         ${_GTK2IncDir}
42         ${_GTK2IncDir}/gtk-2.0
43         /usr/include/gtk-2.0
44         /usr/local/include/gtk-2.0
45         /opt/include/gtk-2.0
46         /opt/gnome/include/gtk-2.0
47         /sw/include/gtk-2.0
48     )
49     gtk2_debug_message("GTK2_GTK_INCLUDE_DIR is ${GTK2_GTK_INCLUDE_DIR}")
50
51     # Some Linux distributions (e.g. Red Hat) have glibconfig.h
52     # and glib.h in different directories, so we need to look
53     # for both.
54     #  - Atanas Georgiev <atanas@cs.columbia.edu>
55     pkgconfig(glib-2.0 _GLIB2IncDir _GLIB2LinkDir _GLIB2LinkFlags _GLIB2Cflags)
56     pkgconfig(gmodule-2.0 _GMODULE2IncDir _GMODULE2LinkDir _GMODULE2LinkFlags _GMODULE2Cflags)
57
58     find_path(GTK2_GLIBCONFIG_INCLUDE_DIR
59       NAMES
60         glibconfig.h
61       PATHS
62         ${_GLIB2IncDir}
63         ${_GMODULE2IncDir}
64         ${_GMODULE2IncDir}/glib-2.0
65         ${_GLIB2LinkDir}/glib-2.0/include
66         /opt/gnome/lib64/glib-2.0/include
67         /opt/gnome/lib/glib-2.0/include
68         /opt/lib/glib-2.0/include
69         /usr/lib64/glib-2.0/include
70         /usr/lib/glib-2.0/include
71         /sw/lib/glib-2.0/include
72     )
73     gtk2_debug_message("GTK2_GLIBCONFIG_INCLUDE_DIR is ${GTK2_GLIBCONFIG_INCLUDE_DIR}")
74
75     find_path(GTK2_GLIB_INCLUDE_DIR
76       NAMES
77         glib.h
78       PATHS
79         ${_GLIB2IncDir}
80         ${_GLIB2IncDir}/glib-2.0
81         ${_GMODULE2IncDir}
82         /opt/include/glib-2.0
83         /opt/gnome/include/glib-2.0
84         /usr/include/glib-2.0
85         /sw/include/glib-2.0
86     )
87     gtk2_debug_message("GTK2_GLIB_INCLUDE_DIR is ${GTK2_GLIB_INCLUDE_DIR}")
88
89     pkgconfig(gdk-2.0 _GDK2IncDir _GDK2LinkDir _GDK2LinkFlags _GDK2Cflags)
90
91     find_path(GTK2_GDK_INCLUDE_DIR
92       NAMES
93         gdkconfig.h
94       PATHS
95         ${_GDK2IncDir}
96         ${_GDK2IncDir}/gtk-2.0
97         ${_GDK2LinkDir}/gtk-2.0/include
98         /opt/gnome/lib/gtk-2.0/include
99         /opt/gnome/lib64/gtk-2.0/include
100         /opt/lib/gtk-2.0/include
101         /usr/lib/gtk-2.0/include
102         /usr/lib64/gtk-2.0/include
103         /sw/lib/gtk-2.0/include
104     )
105     gtk2_debug_message("GTK2_GDK_INCLUDE_DIR is ${GTK2_GDK_INCLUDE_DIR}")
106
107     find_path(GTK2_GTKGL_INCLUDE_DIR
108       NAMES
109         gtkgl/gtkglarea.h
110       PATHS
111         ${_GLIB2IncDir}
112         /usr/include
113         /usr/local/include
114         /usr/openwin/share/include
115         /opt/gnome/include
116         /opt/include
117         /sw/include
118     )
119     gtk2_debug_message("GTK2_GTKGL_INCLUDE_DIR is ${GTK2_GTKGL_INCLUDE_DIR}")
120
121     pkgconfig(pango _PANGOIncDir _PANGOLinkDir _PANGOLinkFlags _PANGOCflags)
122
123     find_path(GTK2_PANGO_INCLUDE_DIR
124       NAMES
125         pango/pango.h
126       PATHS
127         ${_PANGOIncDir}
128         ${_PANGOIncDir}/pango-1.0/
129         /usr/include/pango-1.0
130         /opt/gnome/include/pango-1.0
131         /opt/include/pango-1.0
132         /sw/include/pango-1.0
133     )
134     gtk2_debug_message("GTK2_PANGO_INCLUDE_DIR is ${GTK2_PANGO_INCLUDE_DIR}")
135
136     pkgconfig(cairo _CAIROIncDir _CAIROLinkDir _CAIROLinkFlags _CAIROCflags)
137
138     find_path(GTK2_CAIRO_INCLUDE_DIR
139       NAMES
140         cairo.h
141       PATHS
142         ${_CAIROIncDir}
143         ${_CAIROIncDir}/cairo
144         /opt/gnome/include/cairo
145         /usr/include
146         /usr/include/cairo
147         /opt/include
148         /opt/include/cairo
149         /sw/include
150         /sw/include/cairo
151     )
152     gtk2_debug_message("GTK2_CAIRO_INCLUDE_DIR is ${GTK2_CAIRO_INCLUDE_DIR}")
153
154     pkgconfig(gdk-pixbuf-2.0 _GDKPIXBUFIncDir _GDKPIXBUFLinkDir _GDKPIXBUFLinkFlags _GDKPIXBUFCflags)
155
156     find_path(GTK2_GDKPIXBUF_INCLUDE_DIR
157       NAMES
158         gdk-pixbuf/gdk-pixbuf.h
159       PATHS
160         ${_GDKPIXBUFIncDir}
161         ${_GDKPIXBUFIncDir}/gdk-pixbuf-2.0
162         /opt/gnome/include/cairo
163         /usr/include
164         /usr/include/cairo
165         /opt/include
166         /opt/include/cairo
167         /sw/include
168         /sw/include/cairo
169         /sw/include/gdk-pixbuf-2.0
170     )
171     gtk2_debug_message("GTK2_CAIRO_INCLUDE_DIR is ${GTK2_CAIRO_INCLUDE_DIR}")
172
173     pkgconfig(atk _ATKIncDir _ATKLinkDir _ATKLinkFlags _ATKCflags)
174
175     find_path(GTK2_ATK_INCLUDE_DIR
176       NAMES
177         atk/atk.h
178       PATHS
179         ${_ATKIncDir}
180         ${_ATKIncDir}/atk-1.0
181         /opt/gnome/include/atk-1.0
182         /usr/include/atk-1.0
183         /opt/include/atk-1.0
184         /sw/include/atk-1.0
185     )
186     gtk2_debug_message("GTK2_ATK_INCLUDE_DIR is ${GTK2_ATK_INCLUDE_DIR}")
187     if (UNIX)
188     find_library(GTK2_GTK_LIBRARY
189       NAMES
190         gtk-x11-2.0
191       PATHS
192         ${_GTK2LinkDir}
193         /usr/lib
194         /usr/local/lib
195         /usr/openwin/lib
196         /usr/X11R6/lib
197         /opt/gnome/lib
198         /opt/lib
199         /sw/lib
200     )
201     gtk2_debug_message("GTK2_GTK_LIBRARY is ${GTK2_GTK_LIBRARY}")
202
203     find_library(GTK2_GDK_LIBRARY
204       NAMES
205         gdk-x11-2.0
206       PATHS
207         ${_GDK2LinkDir}
208         /usr/lib
209         /usr/local/lib
210         /usr/openwin/lib
211         /usr/X11R6/lib
212         /opt/gnome/lib
213         /opt/lib
214         /sw/lib
215     )
216     gtk2_debug_message("GTK2_GDK_LIBRARY is ${GTK2_GDK_LIBRARY}")
217     endif(UNIX)
218     if (WIN32)
219
220     find_library(GTK2_GTK_LIBRARY
221       NAMES
222         gtk-win32-2.0
223       PATHS
224         ${_GTK2LinkDir}
225         /usr/lib
226         /usr/local/lib
227         /usr/openwin/lib
228         /usr/X11R6/lib
229         /opt/gnome/lib
230         /opt/lib
231         /sw/lib
232     )
233     gtk2_debug_message("GTK2_GTK_LIBRARY is ${GTK2_GTK_LIBRARY}")
234
235     find_library(GTK2_GDK_LIBRARY
236       NAMES
237         gdk-win32-2.0
238       PATHS
239         ${_GDK2LinkDir}
240         /usr/lib
241         /usr/local/lib
242         /usr/openwin/lib
243         /usr/X11R6/lib
244         /opt/gnome/lib
245         /opt/lib
246         /sw/lib
247     )
248     endif (WIN32)
249     find_library(GTK2_GDK_PIXBUF_LIBRARY
250       NAMES
251         gdk_pixbuf-2.0
252       PATHS
253         ${_GDK2LinkDir}
254         /usr/lib
255         /usr/local/lib
256         /usr/openwin/lib
257         /usr/X11R6/lib
258         /opt/gnome/lib
259         /opt/lib
260         /sw/lib
261     )
262     gtk2_debug_message("GTK2_GDK_PIXBUF_LIBRARY is ${GTK2_GDK_PIXBUF_LIBRARY}")
263
264     find_library(GTK2_GMODULE_LIBRARY
265       NAMES
266         gmodule-2.0
267       PATHS
268         ${_GMODULE2LinkDir}
269         /usr/lib
270         /usr/local/lib
271         /usr/openwin/lib
272         /usr/X11R6/lib
273         /opt/gnome/lib
274         /opt/lib
275         /sw/lib
276     )
277     gtk2_debug_message("GTK2_GMODULE_LIBRARY is ${GTK2_GMODULE_LIBRARY}")
278
279     find_library(GTK2_GTHREAD_LIBRARY
280       NAMES
281         gthread-2.0
282       PATHS
283         ${_GTK2LinkDir}
284         /usr/lib
285         /usr/local/lib
286         /usr/openwin/lib
287         /usr/X11R6/lib
288         /opt/gnome/lib
289         /opt/lib
290         /sw/lib
291     )
292     gtk2_debug_message("GTK2_GTHREAD_LIBRARY is ${GTK2_GTHREAD_LIBRARY}")
293
294     find_library(GTK2_GOBJECT_LIBRARY
295       NAMES
296         gobject-2.0
297       PATHS
298         ${_GTK2LinkDir}
299         /usr/lib
300         /usr/local/lib
301         /usr/openwin/lib
302         /usr/X11R6/lib
303         /opt/gnome/lib
304         /opt/lib
305         /sw/lib
306     )
307     gtk2_debug_message("GTK2_GOBJECT_LIBRARY is ${GTK2_GOBJECT_LIBRARY}")
308
309     find_library(GTK2_GLIB_LIBRARY
310       NAMES
311         glib-2.0
312       PATHS
313         ${_GLIB2LinkDir}
314         /usr/lib
315         /usr/local/lib
316         /usr/openwin/lib
317         /usr/X11R6/lib
318         /opt/gnome/lib
319         /opt/lib
320         /sw/lib
321     )
322     gtk2_debug_message("GTK2_GLIB_LIBRARY is ${GTK2_GLIB_LIBRARY}")
323
324     find_library(GTK2_GTKGL_LIBRARY
325       NAMES
326         gtkgl
327       PATHS
328         ${_GTK2LinkDir}
329         /usr/lib
330         /usr/local/lib
331         /usr/openwin/lib
332         /usr/X11R6/lib
333         /opt/gnome/lib
334         /opt/lib
335         /sw/lib
336     )
337     gtk2_debug_message("GTK2_GTKGL_LIBRARY is ${GTK2_GTKGL_LIBRARY}")
338
339     find_library(GTK2_PANGO_LIBRARY
340       NAMES
341         pango-1.0
342       PATHS
343         ${_PANGOLinkDir}
344         /usr/lib
345         /usr/local/lib
346         /usr/openwin/lib
347         /usr/X11R6/lib
348         /opt/gnome/lib
349         /opt/lib
350         /sw/lib
351     )
352     gtk2_debug_message("GTK2_PANGO_LIBRARY is ${GTK2_PANGO_LIBRARY}")
353
354     find_library(GTK2_CAIRO_LIBRARY
355       NAMES
356         pangocairo-1.0
357       PATHS
358         ${_CAIROLinkDir}
359         /usr/lib
360         /usr/local/lib
361         /usr/openwin/lib
362         /usr/X11R6/lib
363         /opt/gnome/lib
364         /opt/lib
365         /sw/lib
366     )
367     gtk2_debug_message("GTK2_PANGO_LIBRARY is ${GTK2_CAIRO_LIBRARY}")
368
369     find_library(GTK2_ATK_LIBRARY
370       NAMES
371         atk-1.0
372       PATHS
373         ${_ATKinkDir}
374         /usr/lib
375         /usr/local/lib
376         /usr/openwin/lib
377         /usr/X11R6/lib
378         /opt/gnome/lib
379         /opt/lib
380         /sw/lib
381     )
382     gtk2_debug_message("GTK2_ATK_LIBRARY is ${GTK2_ATK_LIBRARY}")
383
384     set(GTK2_INCLUDE_DIRS
385       ${GTK2_GTK_INCLUDE_DIR}
386       ${GTK2_GLIBCONFIG_INCLUDE_DIR}
387       ${GTK2_GLIB_INCLUDE_DIR}
388       ${GTK2_GDK_INCLUDE_DIR}
389       ${GTK2_PANGO_INCLUDE_DIR}
390       ${GTK2_CAIRO_INCLUDE_DIR}
391       ${GTK2_ATK_INCLUDE_DIR}
392     )
393
394     if(GTK2_GDKPIXBUF_INCLUDE_DIR)
395         set(GTK2_INCLUDE_DIRS ${GTK2_INCLUDE_DIRS} ${GTK2_GDKPIXBUF_INCLUDE_DIR})
396     endif(GTK2_GDKPIXBUF_INCLUDE_DIR)
397
398     if (GTK2_GTK_LIBRARY AND GTK2_GTK_INCLUDE_DIR)
399       if (GTK2_GDK_LIBRARY AND GTK2_GDK_PIXBUF_LIBRARY AND GTK2_GDK_INCLUDE_DIR)
400         if (GTK2_GMODULE_LIBRARY)
401           if (GTK2_GTHREAD_LIBRARY)
402             if (GTK2_GOBJECT_LIBRARY)
403                 if (GTK2_PANGO_LIBRARY AND GTK2_PANGO_INCLUDE_DIR)
404                   if (GTK2_CAIRO_LIBRARY AND GTK2_CAIRO_INCLUDE_DIR)
405                     if (GTK2_ATK_LIBRARY AND GTK2_ATK_INCLUDE_DIR)
406
407                       # set GTK2 libraries
408                       set (GTK2_LIBRARIES
409                         ${GTK2_GTK_LIBRARY}
410                         ${GTK2_GDK_LIBRARY}
411                         ${GTK2_GDK_PIXBUF_LIBRARY}
412                         ${GTK2_GMODULE_LIBRARY}
413                         ${GTK2_GTHREAD_LIBRARY}
414                         ${GTK2_GOBJECT_LIBRARY}
415                         ${GTK2_PANGO_LIBRARY}
416                         ${GTK2_CAIRO_LIBRARY}
417                         ${GTK2_ATK_LIBRARY}
418                       )
419
420                       # check for gtkgl support
421                       if (GTK2_GTKGL_LIBRARY AND GTK2_GTKGL_INCLUDE_DIR)
422                         set(GTK2_GTKGL_FOUND TRUE)
423
424 #                        set(GTK2_INCLUDE_DIRS
425 #                          ${GTK2_INCLUDE_DIRS}
426 #                          ${GTK2_GTKGL_INCLUDE_DIR}
427 #                        )
428
429 #                        set(GTK2_LIBRARIES
430 #                          ${GTK2_LIBRARIES}
431 #                          ${GTK2_GTKGL_LIBRARY}
432 #                        )
433                       endif (GTK2_GTKGL_LIBRARY AND GTK2_GTKGL_INCLUDE_DIR)
434
435                     else (GTK2_ATK_LIBRARY AND GTK2_ATK_INCLUDE_DIR)
436                     endif (GTK2_ATK_LIBRARY AND GTK2_ATK_INCLUDE_DIR)
437                   else (GTK2_CAIRO_LIBRARY AND GTK2_CAIRO_INCLUDE_DIR)
438                   endif (GTK2_CAIRO_LIBRARY AND GTK2_CAIRO_INCLUDE_DIR)
439                 else (GTK2_PANGO_LIBRARY AND GTK2_PANGO_INCLUDE_DIR)
440                 endif (GTK2_PANGO_LIBRARY AND GTK2_PANGO_INCLUDE_DIR)
441             else (GTK2_GOBJECT_LIBRARY)
442             endif (GTK2_GOBJECT_LIBRARY)
443           else (GTK2_GTHREAD_LIBRARY)
444           endif (GTK2_GTHREAD_LIBRARY)
445         else (GTK2_GMODULE_LIBRARY)
446         endif (GTK2_GMODULE_LIBRARY)
447       else (GTK2_GDK_LIBRARY AND GTK2_GDK_PIXBUF_LIBRARY AND GTK2_GDK_INCLUDE_DIR)
448       endif (GTK2_GDK_LIBRARY AND GTK2_GDK_PIXBUF_LIBRARY AND GTK2_GDK_INCLUDE_DIR)
449     else (GTK2_GTK_LIBRARY AND GTK2_GTK_INCLUDE_DIR)
450     endif (GTK2_GTK_LIBRARY AND GTK2_GTK_INCLUDE_DIR)
451
452
453     if (GTK2_INCLUDE_DIRS AND GTK2_LIBRARIES)
454        set(GTK2_FOUND TRUE)
455     endif (GTK2_INCLUDE_DIRS AND GTK2_LIBRARIES)
456
457     if (GTK2_FOUND)
458       if (NOT GTK2_FIND_QUIETLY)
459         message(STATUS "Found GTK2: ${GTK2_LIBRARIES}")
460       endif (NOT GTK2_FIND_QUIETLY)
461     else (GTK2_FOUND)
462       if (GTK2_FIND_REQUIRED)
463         message(FATAL_ERROR "Could not find GTK2")
464       endif (GTK2_FIND_REQUIRED)
465     endif (GTK2_FOUND)
466
467     # show the GTK2_INCLUDE_DIRS and GTK2_LIBRARIES variables only in the advanced view
468     mark_as_advanced(GTK2_INCLUDE_DIRS GTK2_LIBRARIES)
469
470
471 endif (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)
472