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
14 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
19 macro(GTK2_DEBUG_MESSAGE _message)
21 message(STATUS "(DEBUG) ${_message}")
23 endmacro(GTK2_DEBUG_MESSAGE _message)
25 if (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)
28 else (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)
30 # use pkg-config to get the directories and then use these values
31 # in the FIND_PATH() and FIND_LIBRARY() calls
34 pkgconfig(gtk+-2.0 _GTK2IncDir _GTK2LinkDir _GTK2LinkFlags _GTK2Cflags)
36 find_path(GTK2_GTK_INCLUDE_DIR
43 /usr/local/include/gtk-2.0
45 /opt/gnome/include/gtk-2.0
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
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
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
70 gtk2_debug_message("GTK2_GLIBCONFIG_INCLUDE_DIR is ${GTK2_GLIBCONFIG_INCLUDE_DIR}")
72 find_path(GTK2_GLIB_INCLUDE_DIR
79 /opt/gnome/include/glib-2.0
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
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
99 gtk2_debug_message("GTK2_GDK_INCLUDE_DIR is ${GTK2_GDK_INCLUDE_DIR}")
101 find_path(GTK2_GTKGL_INCLUDE_DIR
108 /usr/openwin/share/include
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
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
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
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
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
150 /opt/gnome/include/cairo
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
167 /opt/gnome/include/atk-1.0
172 gtk2_debug_message("GTK2_ATK_INCLUDE_DIR is ${GTK2_ATK_INCLUDE_DIR}")
174 find_library(GTK2_GTK_LIBRARY
187 gtk2_debug_message("GTK2_GTK_LIBRARY is ${GTK2_GTK_LIBRARY}")
189 find_library(GTK2_GDK_LIBRARY
202 gtk2_debug_message("GTK2_GDK_LIBRARY is ${GTK2_GDK_LIBRARY}")
204 find_library(GTK2_GDK_PIXBUF_LIBRARY
217 gtk2_debug_message("GTK2_GDK_PIXBUF_LIBRARY is ${GTK2_GDK_PIXBUF_LIBRARY}")
219 find_library(GTK2_GMODULE_LIBRARY
232 gtk2_debug_message("GTK2_GMODULE_LIBRARY is ${GTK2_GMODULE_LIBRARY}")
234 find_library(GTK2_GTHREAD_LIBRARY
247 gtk2_debug_message("GTK2_GTHREAD_LIBRARY is ${GTK2_GTHREAD_LIBRARY}")
249 find_library(GTK2_GOBJECT_LIBRARY
262 gtk2_debug_message("GTK2_GOBJECT_LIBRARY is ${GTK2_GOBJECT_LIBRARY}")
264 find_library(GTK2_GLIB_LIBRARY
277 gtk2_debug_message("GTK2_GLIB_LIBRARY is ${GTK2_GLIB_LIBRARY}")
279 find_library(GTK2_GTKGL_LIBRARY
292 gtk2_debug_message("GTK2_GTKGL_LIBRARY is ${GTK2_GTKGL_LIBRARY}")
294 find_library(GTK2_GLADE_LIBRARY
307 gtk2_debug_message("GTK2_GLADE_LIBRARY is ${GTK2_GLADE_LIBRARY}")
309 find_library(GTK2_PANGO_LIBRARY
322 gtk2_debug_message("GTK2_PANGO_LIBRARY is ${GTK2_PANGO_LIBRARY}")
324 find_library(GTK2_CAIRO_LIBRARY
337 gtk2_debug_message("GTK2_PANGO_LIBRARY is ${GTK2_CAIRO_LIBRARY}")
339 find_library(GTK2_ATK_LIBRARY
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}
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)
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}
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
395 ${GTK2_GTKGL_INCLUDE_DIR}
400 ${GTK2_GTKGL_LIBRARY}
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)
435 endif (GTK2_INCLUDE_DIRS AND GTK2_LIBRARIES)
438 if (NOT GTK2_FIND_QUIETLY)
439 message(STATUS "Found GTK2: ${GTK2_LIBRARIES}")
440 endif (NOT GTK2_FIND_QUIETLY)
442 if (GTK2_FIND_REQUIRED)
443 message(FATAL_ERROR "Could not find GTK2")
444 endif (GTK2_FIND_REQUIRED)
447 # show the GTK2_INCLUDE_DIRS and GTK2_LIBRARIES variables only in the advanced view
448 mark_as_advanced(GTK2_INCLUDE_DIRS GTK2_LIBRARIES)
451 endif (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)