Updating buildsystem files to closest as possible to file-sync plugin.
[gdataplugin.git] / cmake / modules / FindGTK2.cmake
blob39094b9a87761891de62c43637e5cb01f9bf4589
1 # - Try to find GTK2
2 # Once done this will define
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
10 #  Copyright (c) 2007 Andreas Schneider <mail@cynapses.org>
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.
17 set(GTK2_DEBUG ON)
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)
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   if (UNIX)
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)
34     pkgconfig(gtk+-2.0 _GTK2IncDir _GTK2LinkDir _GTK2LinkFlags _GTK2Cflags)
36     find_path(GTK2_GTK_INCLUDE_DIR
37       NAMES
38         gtk/gtk.h
39       PATHS
40         $ENV{GTK2_HOME}
41         ${_GTK2IncDir}
42         /usr/include/gtk-2.0
43         /usr/local/include/gtk-2.0
44         /opt/include/gtk-2.0
45         /opt/gnome/include/gtk-2.0
46         /sw/include/gtk-2.0
47     )
48     gtk2_debug_message("GTK2_GTK_INCLUDE_DIR is ${GTK2_GTK_INCLUDE_DIR}")
50     # Some Linux distributions (e.g. Red Hat) have glibconfig.h
51     # and glib.h in different directories, so we need to look
52     # for both.
53     #  - Atanas Georgiev <atanas@cs.columbia.edu>
54     pkgconfig(glib-2.0 _GLIB2IncDir _GLIB2LinkDir _GLIB2LinkFlags _GLIB2Cflags)
55     pkgconfig(gmodule-2.0 _GMODULE2IncDir _GMODULE2LinkDir _GMODULE2LinkFlags _GMODULE2Cflags)
57     find_path(GTK2_GLIBCONFIG_INCLUDE_DIR
58       NAMES
59         glibconfig.h
60       PATHS
61         ${_GLIB2IncDir}
62         ${_GMODULE2IncDir}
63         /opt/gnome/lib64/glib-2.0/include
64         /opt/gnome/lib/glib-2.0/include
65         /opt/lib/glib-2.0/include
66         /usr/lib64/glib-2.0/include
67         /usr/lib/glib-2.0/include
68         /sw/lib/glib-2.0/include
69     )
70     gtk2_debug_message("GTK2_GLIBCONFIG_INCLUDE_DIR is ${GTK2_GLIBCONFIG_INCLUDE_DIR}")
72     find_path(GTK2_GLIB_INCLUDE_DIR
73       NAMES
74         glib.h
75       PATHS
76         ${_GLIB2IncDir}
77         ${_GMODULE2IncDir}
78         /opt/include/glib-2.0
79         /opt/gnome/include/glib-2.0
80         /usr/include/glib-2.0
81         /sw/include/glib-2.0
82     )
83     gtk2_debug_message("GTK2_GLIB_INCLUDE_DIR is ${GTK2_GLIB_INCLUDE_DIR}")
85     pkgconfig(gdk-2.0 _GDK2IncDir _GDK2LinkDir _GDK2LinkFlags _GDK2Cflags)
87     find_path(GTK2_GDK_INCLUDE_DIR
88       NAMES
89         gdkconfig.h
90       PATHS
91         ${_GDK2IncDir}
92         /opt/gnome/lib/gtk-2.0/include
93         /opt/gnome/lib64/gtk-2.0/include
94         /opt/lib/gtk-2.0/include
95         /usr/lib/gtk-2.0/include
96         /usr/lib64/gtk-2.0/include
97         /sw/lib/gtk-2.0/include
98     )
99     gtk2_debug_message("GTK2_GDK_INCLUDE_DIR is ${GTK2_GDK_INCLUDE_DIR}")
101     find_path(GTK2_GTKGL_INCLUDE_DIR
102       NAMES
103         gtkgl/gtkglarea.h
104       PATHS
105         ${_GLIB2IncDir}
106         /usr/include
107         /usr/local/include
108         /usr/openwin/share/include
109         /opt/gnome/include
110         /opt/include
111         /sw/include
112     )
113     gtk2_debug_message("GTK2_GTKGL_INCLUDE_DIR is ${GTK2_GTKGL_INCLUDE_DIR}")
115     pkgconfig(libglade-2.0 _GLADEIncDir _GLADELinkDir _GLADELinkFlags _GLADECflags)
117     find_path(GTK2_GLADE_INCLUDE_DIR
118       NAMES
119         glade/glade.h
120       PATHS
121         ${_GLADEIncDir}
122         /opt/gnome/include/libglade-2.0
123         /usr/include/libglade-2.0
124         /opt/include/libglade-2.0
125         /sw/include/libglade-2.0
126     )
127     gtk2_debug_message("GTK2_GLADE_INCLUDE_DIR is ${GTK2_GLADE_INCLUDE_DIR}")
129     pkgconfig(pango _PANGOIncDir _PANGOLinkDir _PANGOLinkFlags _PANGOCflags)
131     find_path(GTK2_PANGO_INCLUDE_DIR
132       NAMES
133         pango/pango.h
134       PATHS
135         ${_PANGOIncDir}
136         /usr/include/pango-1.0
137         /opt/gnome/include/pango-1.0
138         /opt/include/pango-1.0
139         /sw/include/pango-1.0
140     )
141     gtk2_debug_message("GTK2_PANGO_INCLUDE_DIR is ${GTK2_PANGO_INCLUDE_DIR}")
143     pkgconfig(cairo _CAIROIncDir _CAIROLinkDir _CAIROLinkFlags _CAIROCflags)
145     find_path(GTK2_CAIRO_INCLUDE_DIR
146       NAMES
147         cairo.h
148       PATHS
149         ${_CAIROIncDir}
150         /opt/gnome/include/cairo
151         /usr/include
152         /usr/include/cairo
153         /opt/include
154         /opt/include/cairo
155         /sw/include
156         /sw/include/cairo
157     )
158     gtk2_debug_message("GTK2_CAIRO_INCLUDE_DIR is ${GTK2_CAIRO_INCLUDE_DIR}")
160     pkgconfig(atk _ATKIncDir _ATKLinkDir _ATKLinkFlags _ATKCflags)
162     find_path(GTK2_ATK_INCLUDE_DIR
163       NAMES
164         atk/atk.h
165       PATHS
166         ${_ATKIncDir}
167         /opt/gnome/include/atk-1.0
168         /usr/include/atk-1.0
169         /opt/include/atk-1.0
170         /sw/include/atk-1.0
171     )
172     gtk2_debug_message("GTK2_ATK_INCLUDE_DIR is ${GTK2_ATK_INCLUDE_DIR}")
174     find_library(GTK2_GTK_LIBRARY
175       NAMES
176         gtk-x11-2.0
177       PATHS
178         ${_GTK2LinkDir}
179         /usr/lib
180         /usr/local/lib
181         /usr/openwin/lib
182         /usr/X11R6/lib
183         /opt/gnome/lib
184         /opt/lib
185         /sw/lib
186     )
187     gtk2_debug_message("GTK2_GTK_LIBRARY is ${GTK2_GTK_LIBRARY}")
189     find_library(GTK2_GDK_LIBRARY
190       NAMES
191         gdk-x11-2.0
192       PATHS
193         ${_GDK2LinkDir}
194         /usr/lib
195         /usr/local/lib
196         /usr/openwin/lib
197         /usr/X11R6/lib
198         /opt/gnome/lib
199         /opt/lib
200         /sw/lib
201     )
202     gtk2_debug_message("GTK2_GDK_LIBRARY is ${GTK2_GDK_LIBRARY}")
204     find_library(GTK2_GDK_PIXBUF_LIBRARY
205       NAMES
206         gdk_pixbuf-2.0
207       PATHS
208         ${_GDK2LinkDir}
209         /usr/lib
210         /usr/local/lib
211         /usr/openwin/lib
212         /usr/X11R6/lib
213         /opt/gnome/lib
214         /opt/lib
215         /sw/lib
216     )
217     gtk2_debug_message("GTK2_GDK_PIXBUF_LIBRARY is ${GTK2_GDK_PIXBUF_LIBRARY}")
219     find_library(GTK2_GMODULE_LIBRARY
220       NAMES
221         gmodule-2.0
222       PATHS
223         ${_GMODULE2LinkDir}
224         /usr/lib
225         /usr/local/lib
226         /usr/openwin/lib
227         /usr/X11R6/lib
228         /opt/gnome/lib
229         /opt/lib
230         /sw/lib
231     )
232     gtk2_debug_message("GTK2_GMODULE_LIBRARY is ${GTK2_GMODULE_LIBRARY}")
234     find_library(GTK2_GTHREAD_LIBRARY
235       NAMES
236         gthread-2.0
237       PATHS
238         ${_GTK2LinkDir}
239         /usr/lib
240         /usr/local/lib
241         /usr/openwin/lib
242         /usr/X11R6/lib
243         /opt/gnome/lib
244         /opt/lib
245         /sw/lib
246     )
247     gtk2_debug_message("GTK2_GTHREAD_LIBRARY is ${GTK2_GTHREAD_LIBRARY}")
249     find_library(GTK2_GOBJECT_LIBRARY
250       NAMES
251         gobject-2.0
252       PATHS
253         ${_GTK2LinkDir}
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_GOBJECT_LIBRARY is ${GTK2_GOBJECT_LIBRARY}")
264     find_library(GTK2_GLIB_LIBRARY
265       NAMES
266         glib-2.0
267       PATHS
268         ${_GLIB2LinkDir}
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_GLIB_LIBRARY is ${GTK2_GLIB_LIBRARY}")
279     find_library(GTK2_GTKGL_LIBRARY
280       NAMES
281         gtkgl
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_GTKGL_LIBRARY is ${GTK2_GTKGL_LIBRARY}")
294     find_library(GTK2_GLADE_LIBRARY
295       NAMES
296         glade-2.0
297       PATHS
298         ${_GLADELinkDir}
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_GLADE_LIBRARY is ${GTK2_GLADE_LIBRARY}")
309     find_library(GTK2_PANGO_LIBRARY
310       NAMES
311         pango-1.0
312       PATHS
313         ${_PANGOLinkDir}
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_PANGO_LIBRARY is ${GTK2_PANGO_LIBRARY}")
324     find_library(GTK2_CAIRO_LIBRARY
325       NAMES
326         pangocairo-1.0
327       PATHS
328         ${_CAIROLinkDir}
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_PANGO_LIBRARY is ${GTK2_CAIRO_LIBRARY}")
339     find_library(GTK2_ATK_LIBRARY
340       NAMES
341         atk-1.0
342       PATHS
343         ${_ATKinkDir}
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_ATK_LIBRARY is ${GTK2_ATK_LIBRARY}")
354     set(GTK2_INCLUDE_DIRS
355       ${GTK2_GTK_INCLUDE_DIR}
356       ${GTK2_GLIBCONFIG_INCLUDE_DIR}
357       ${GTK2_GLIB_INCLUDE_DIR}
358       ${GTK2_GDK_INCLUDE_DIR}
359       ${GTK2_GLADE_INCLUDE_DIR}
360       ${GTK2_PANGO_INCLUDE_DIR}
361       ${GTK2_CAIRO_INCLUDE_DIR}
362       ${GTK2_ATK_INCLUDE_DIR}
363     )
365     if (GTK2_GTK_LIBRARY AND GTK2_GTK_INCLUDE_DIR)
366       if (GTK2_GDK_LIBRARY AND GTK2_GDK_PIXBUF_LIBRARY AND GTK2_GDK_INCLUDE_DIR)
367         if (GTK2_GMODULE_LIBRARY)
368           if (GTK2_GTHREAD_LIBRARY)
369             if (GTK2_GOBJECT_LIBRARY)
370               if (GTK2_GLADE_LIBRARY AND GTK2_GLADE_INCLUDE_DIR)
371                 if (GTK2_PANGO_LIBRARY AND GTK2_PANGO_INCLUDE_DIR)
372                   if (GTK2_CAIRO_LIBRARY AND GTK2_CAIRO_INCLUDE_DIR)
373                     if (GTK2_ATK_LIBRARY AND GTK2_ATK_INCLUDE_DIR)
375                       # set GTK2 libraries
376                       set (GTK2_LIBRARIES
377                         ${GTK2_GTK_LIBRARY}
378                         ${GTK2_GDK_LIBRARY}
379                         ${GTK2_GDK_PIXBUF_LIBRARY}
380                         ${GTK2_GMODULE_LIBRARY}
381                         ${GTK2_GTHREAD_LIBRARY}
382                         ${GTK2_GOBJECT_LIBRARY}
383                         ${GTK2_GLADE_LIBRARY}
384                         ${GTK2_PANGO_LIBRARY}
385                         ${GTK2_CAIRO_LIBRARY}
386                         ${GTK2_ATK_LIBRARY}
387                       )
389                       # check for gtkgl support
390                       if (GTK2_GTKGL_LIBRARY AND GTK2_GTKGL_INCLUDE_DIR)
391                         set(GTK2_GTKGL_FOUND TRUE)
393                         set(GTK2_INCLUDE_DIRS
394                           ${GTK2_INCLUDE_DIR}
395                           ${GTK2_GTKGL_INCLUDE_DIR}
396                         )
398                         set(GTK2_LIBRARIES
399                           ${GTK2_LIBRARIES}
400                           ${GTK2_GTKGL_LIBRARY}
401                         )
402                       endif (GTK2_GTKGL_LIBRARY AND GTK2_GTKGL_INCLUDE_DIR)
404                     else (GTK2_ATK_LIBRARY AND GTK2_ATK_INCLUDE_DIR)
405                       message(SEND_ERROR "Could not find ATK")
406                     endif (GTK2_ATK_LIBRARY AND GTK2_ATK_INCLUDE_DIR)
407                   else (GTK2_CAIRO_LIBRARY AND GTK2_CAIRO_INCLUDE_DIR)
408                     message(SEND_ERROR "Could not find CAIRO")
409                   endif (GTK2_CAIRO_LIBRARY AND GTK2_CAIRO_INCLUDE_DIR)
410                 else (GTK2_PANGO_LIBRARY AND GTK2_PANGO_INCLUDE_DIR)
411                   message(SEND_ERROR "Could not find PANGO")
412                 endif (GTK2_PANGO_LIBRARY AND GTK2_PANGO_INCLUDE_DIR)
413               else (GTK2_GLADE_LIBRARY AND GTK2_GLADE_INCLUDE_DIR)
414                 message(SEND_ERROR "Could not find GLADE")
415               endif (GTK2_GLADE_LIBRARY AND GTK2_GLADE_INCLUDE_DIR)
416             else (GTK2_GOBJECT_LIBRARY)
417               message(SEND_ERROR "Could not find GOBJECT")
418             endif (GTK2_GOBJECT_LIBRARY)
419           else (GTK2_GTHREAD_LIBRARY)
420             message(SEND_ERROR "Could not find GTHREAD")
421           endif (GTK2_GTHREAD_LIBRARY)
422         else (GTK2_GMODULE_LIBRARY)
423           message(SEND_ERROR "Could not find GMODULE")
424         endif (GTK2_GMODULE_LIBRARY)
425       else (GTK2_GDK_LIBRARY AND GTK2_GDK_PIXBUF_LIBRARY AND GTK2_GDK_INCLUDE_DIR)
426         message(SEND_ERROR "Could not find GDK (GDK_PIXBUF)")
427       endif (GTK2_GDK_LIBRARY AND GTK2_GDK_PIXBUF_LIBRARY AND GTK2_GDK_INCLUDE_DIR)
428     else (GTK2_GTK_LIBRARY AND GTK2_GTK_INCLUDE_DIR)
429       message(SEND_ERROR "Could not find GTK2-X11")
430     endif (GTK2_GTK_LIBRARY AND GTK2_GTK_INCLUDE_DIR)
433     if (GTK2_INCLUDE_DIRS AND GTK2_LIBRARIES)
434        set(GTK2_FOUND TRUE)
435     endif (GTK2_INCLUDE_DIRS AND GTK2_LIBRARIES)
437     if (GTK2_FOUND)
438       if (NOT GTK2_FIND_QUIETLY)
439         message(STATUS "Found GTK2: ${GTK2_LIBRARIES}")
440       endif (NOT GTK2_FIND_QUIETLY)
441     else (GTK2_FOUND)
442       if (GTK2_FIND_REQUIRED)
443         message(FATAL_ERROR "Could not find GTK2")
444       endif (GTK2_FIND_REQUIRED)
445     endif (GTK2_FOUND)
447     # show the GTK2_INCLUDE_DIRS and GTK2_LIBRARIES variables only in the advanced view
448     mark_as_advanced(GTK2_INCLUDE_DIRS GTK2_LIBRARIES)
450   endif (UNIX)
451 endif (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)