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
42 ${_GTK2IncDir}/gtk-2.0
44 /usr/local/include/gtk-2.0
46 /opt/gnome/include/gtk-2.0
49 gtk2_debug_message("GTK2_GTK_INCLUDE_DIR is ${GTK2_GTK_INCLUDE_DIR}")
51 # Some Linux distributions (e.g. Red Hat) have glibconfig.h
52 # and glib.h in different directories, so we need to look
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)
58 find_path(GTK2_GLIBCONFIG_INCLUDE_DIR
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
73 gtk2_debug_message("GTK2_GLIBCONFIG_INCLUDE_DIR is ${GTK2_GLIBCONFIG_INCLUDE_DIR}")
75 find_path(GTK2_GLIB_INCLUDE_DIR
80 ${_GLIB2IncDir}/glib-2.0
83 /opt/gnome/include/glib-2.0
87 gtk2_debug_message("GTK2_GLIB_INCLUDE_DIR is ${GTK2_GLIB_INCLUDE_DIR}")
89 pkgconfig(gdk-2.0 _GDK2IncDir _GDK2LinkDir _GDK2LinkFlags _GDK2Cflags)
91 find_path(GTK2_GDK_INCLUDE_DIR
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
105 gtk2_debug_message("GTK2_GDK_INCLUDE_DIR is ${GTK2_GDK_INCLUDE_DIR}")
107 find_path(GTK2_GTKGL_INCLUDE_DIR
114 /usr/openwin/share/include
119 gtk2_debug_message("GTK2_GTKGL_INCLUDE_DIR is ${GTK2_GTKGL_INCLUDE_DIR}")
121 pkgconfig(pango _PANGOIncDir _PANGOLinkDir _PANGOLinkFlags _PANGOCflags)
123 find_path(GTK2_PANGO_INCLUDE_DIR
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
134 gtk2_debug_message("GTK2_PANGO_INCLUDE_DIR is ${GTK2_PANGO_INCLUDE_DIR}")
136 pkgconfig(cairo _CAIROIncDir _CAIROLinkDir _CAIROLinkFlags _CAIROCflags)
138 find_path(GTK2_CAIRO_INCLUDE_DIR
143 ${_CAIROIncDir}/cairo
144 /opt/gnome/include/cairo
152 gtk2_debug_message("GTK2_CAIRO_INCLUDE_DIR is ${GTK2_CAIRO_INCLUDE_DIR}")
154 pkgconfig(gdk-pixbuf-2.0 _GDKPIXBUFIncDir _GDKPIXBUFLinkDir _GDKPIXBUFLinkFlags _GDKPIXBUFCflags)
156 find_path(GTK2_GDKPIXBUF_INCLUDE_DIR
158 gdk-pixbuf/gdk-pixbuf.h
161 ${_GDKPIXBUFIncDir}/gdk-pixbuf-2.0
162 /opt/gnome/include/cairo
169 /sw/include/gdk-pixbuf-2.0
171 gtk2_debug_message("GTK2_CAIRO_INCLUDE_DIR is ${GTK2_CAIRO_INCLUDE_DIR}")
173 pkgconfig(atk _ATKIncDir _ATKLinkDir _ATKLinkFlags _ATKCflags)
175 find_path(GTK2_ATK_INCLUDE_DIR
180 ${_ATKIncDir}/atk-1.0
181 /opt/gnome/include/atk-1.0
186 gtk2_debug_message("GTK2_ATK_INCLUDE_DIR is ${GTK2_ATK_INCLUDE_DIR}")
188 find_library(GTK2_GTK_LIBRARY
201 gtk2_debug_message("GTK2_GTK_LIBRARY is ${GTK2_GTK_LIBRARY}")
203 find_library(GTK2_GDK_LIBRARY
216 gtk2_debug_message("GTK2_GDK_LIBRARY is ${GTK2_GDK_LIBRARY}")
220 find_library(GTK2_GTK_LIBRARY
233 gtk2_debug_message("GTK2_GTK_LIBRARY is ${GTK2_GTK_LIBRARY}")
235 find_library(GTK2_GDK_LIBRARY
249 find_library(GTK2_GDK_PIXBUF_LIBRARY
262 gtk2_debug_message("GTK2_GDK_PIXBUF_LIBRARY is ${GTK2_GDK_PIXBUF_LIBRARY}")
264 find_library(GTK2_GMODULE_LIBRARY
277 gtk2_debug_message("GTK2_GMODULE_LIBRARY is ${GTK2_GMODULE_LIBRARY}")
279 find_library(GTK2_GTHREAD_LIBRARY
292 gtk2_debug_message("GTK2_GTHREAD_LIBRARY is ${GTK2_GTHREAD_LIBRARY}")
294 find_library(GTK2_GOBJECT_LIBRARY
307 gtk2_debug_message("GTK2_GOBJECT_LIBRARY is ${GTK2_GOBJECT_LIBRARY}")
309 find_library(GTK2_GLIB_LIBRARY
322 gtk2_debug_message("GTK2_GLIB_LIBRARY is ${GTK2_GLIB_LIBRARY}")
324 find_library(GTK2_GTKGL_LIBRARY
337 gtk2_debug_message("GTK2_GTKGL_LIBRARY is ${GTK2_GTKGL_LIBRARY}")
339 find_library(GTK2_PANGO_LIBRARY
352 gtk2_debug_message("GTK2_PANGO_LIBRARY is ${GTK2_PANGO_LIBRARY}")
354 find_library(GTK2_CAIRO_LIBRARY
367 gtk2_debug_message("GTK2_PANGO_LIBRARY is ${GTK2_CAIRO_LIBRARY}")
369 find_library(GTK2_ATK_LIBRARY
382 gtk2_debug_message("GTK2_ATK_LIBRARY is ${GTK2_ATK_LIBRARY}")
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}
394 if(GTK2_GDKPIXBUF_INCLUDE_DIR)
395 set(GTK2_INCLUDE_DIRS ${GTK2_INCLUDE_DIRS} ${GTK2_GDKPIXBUF_INCLUDE_DIR})
396 endif(GTK2_GDKPIXBUF_INCLUDE_DIR)
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)
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}
420 # check for gtkgl support
421 if (GTK2_GTKGL_LIBRARY AND GTK2_GTKGL_INCLUDE_DIR)
422 set(GTK2_GTKGL_FOUND TRUE)
424 # set(GTK2_INCLUDE_DIRS
425 # ${GTK2_INCLUDE_DIRS}
426 # ${GTK2_GTKGL_INCLUDE_DIR}
431 # ${GTK2_GTKGL_LIBRARY}
433 endif (GTK2_GTKGL_LIBRARY AND GTK2_GTKGL_INCLUDE_DIR)
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)
453 if (GTK2_INCLUDE_DIRS AND GTK2_LIBRARIES)
455 endif (GTK2_INCLUDE_DIRS AND GTK2_LIBRARIES)
458 if (NOT GTK2_FIND_QUIETLY)
459 message(STATUS "Found GTK2: ${GTK2_LIBRARIES}")
460 endif (NOT GTK2_FIND_QUIETLY)
462 if (GTK2_FIND_REQUIRED)
463 message(FATAL_ERROR "Could not find GTK2")
464 endif (GTK2_FIND_REQUIRED)
467 # show the GTK2_INCLUDE_DIRS and GTK2_LIBRARIES variables only in the advanced view
468 mark_as_advanced(GTK2_INCLUDE_DIRS GTK2_LIBRARIES)
471 endif (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)