aboutsummaryrefslogtreecommitdiffstats
path: root/cmake/modules/FindGTK2.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/modules/FindGTK2.cmake')
-rw-r--r--cmake/modules/FindGTK2.cmake260
1 files changed, 260 insertions, 0 deletions
diff --git a/cmake/modules/FindGTK2.cmake b/cmake/modules/FindGTK2.cmake
new file mode 100644
index 0000000000..2ea148bcd3
--- /dev/null
+++ b/cmake/modules/FindGTK2.cmake
@@ -0,0 +1,260 @@
+#
+# try to find GTK2 (and glib) and GTKGLArea
+#
+#
+# Jan Woetzel 06/2004: added /opt/gnome/include/gtk-1.2 path and $ENV{GTK2_HOME}
+# Andreas Schneider 08/2006: added pkgconfig, added lib64 include dirs
+# Joerg Mayer 2006-08-31: rename GTK to GTK2
+
+
+# GTK2_INCLUDE_DIR - Directories to include to use GTK
+# GTK2_LIBRARIES - Files to link against to use GTK
+# GTK2_FOUND - If false, don't try to use GTK
+# GTK2_GL_FOUND - If false, don't try to use GTK's GL features
+
+
+# don't even bother under WIN32
+IF(UNIX)
+ # use pkg-config to get the directories and then use these values
+ # in the FIND_PATH() and FIND_LIBRARY() calls
+ INCLUDE(UsePkgConfig)
+
+ PKGCONFIG(gtk+-2.0 _GTK2IncDir _GTK2LinkDir _GTK2LinkFlags _GTK2Cflags)
+
+ FIND_PATH(GTK2_gtk_INCLUDE_PATH gtk/gtk.h
+ $ENV{GTK2_HOME}
+ ${_GTK2IncDir}
+ /usr/include/gtk-2.0
+ /usr/local/include/gtk-2.0
+ /opt/gnome/include/gtk-2.0 )
+
+ # Some Linux distributions (e.g. Red Hat) have glibconfig.h
+ # and glib.h in different directories, so we need to look
+ # for both.
+ # - Atanas Georgiev <atanas@cs.columbia.edu>
+ PKGCONFIG(glib-2.0 _GLIB2IncDir _GLIB2inkDir _GLIB2LinkFlags _GLIB2Cflags)
+ PKGCONFIG(gmodule-2.0 _GMODULE2IncDir _GMODULE2inkDir _GMODULE2LinkFlags _GMODULE2Cflags)
+ SET(GDIR /opt/gnome/lib/glib-2.0/include)
+ FIND_PATH(GTK2_glibconfig_INCLUDE_PATH glibconfig.h
+ ${_GLIB2IncDir}
+ /opt/gnome/lib64/glib-2.0/include
+ /opt/gnome/lib/glib-2.0/include
+ /usr/lib64/glib-2.0/include
+ /usr/lib/glib-2.0/include
+ )
+MESSAGE("GTK2_glibconfig_INCLUDE_PATH = ${GTK2_glibconfig_INCLUDE_PATH}")
+
+ FIND_PATH(GTK2_glib_INCLUDE_PATH glib.h
+ ${_GLIB2IncDir}
+ /opt/gnome/include/glib-2.0
+ /usr/include/glib-2.0
+ )
+# MESSAGE(" = ${}")
+
+ FIND_PATH(GTK2_gtkgl_INCLUDE_PATH gtkgl/gtkglarea.h
+ ${_GLIB2IncDir}
+ /usr/include
+ /usr/local/include
+ /usr/openwin/share/include
+ /opt/gnome/include
+ )
+
+ PKGCONFIG(pango _PANGOIncDir _PANGOinkDir _PANGOLinkFlags _PANGOCflags)
+
+ FIND_PATH(GTK2_pango_INCLUDE_PATH pango/pango.h
+ ${_PANGOIncDir}
+ /opt/gnome/include/pango-1.0
+ /usr/include/pango-1.0
+ )
+
+ PKGCONFIG(gdk-2.0 _GDK2IncDir _GDK2inkDir _GDK2LinkFlags _GDK2Cflags)
+ FIND_PATH(GTK2_gdkconfig_INCLUDE_PATH gdkconfig.h
+ ${_GDK2IncDir}
+ /opt/gnome/lib/gtk-2.0/include
+ /opt/gnome/lib64/gtk-2.0/include
+ /usr/lib/gtk-2.0/include
+ /usr/lib64/gtk-2.0/include
+ )
+
+ PKGCONFIG(cairo _CAIROIncDir _CAIROinkDir _CAIROLinkFlags _CAIROCflags)
+ FIND_PATH(GTK2_cairo_INCLUDE_PATH cairo.h
+ ${_CAIROIncDir}
+ /opt/gnome/include/cairo
+ /usr/include
+ /usr/include/cairo )
+ #MESSAGE("GTK2_cairo_INCLUDE_PATH = ${GTK2_cairo_INCLUDE_PATH}")
+
+ PKGCONFIG(atk _ATKIncDir _ATKinkDir _ATKLinkFlags _ATKCflags)
+ FIND_PATH(GTK2_atk_INCLUDE_PATH atk/atk.h
+ ${_ATKIncDir}
+ /opt/gnome/include/atk-1.0
+ /usr/include/atk-1.0
+ )
+ #MESSAGE("GTK2_atk_INCLUDE_PATH = ${GTK2_atk_INCLUDE_PATH}")
+
+ FIND_LIBRARY( GTK2_gtkgl_LIBRARY gtkgl
+ ${_GTK2IncDir}
+ /usr/lib
+ /usr/local/lib
+ /usr/openwin/lib
+ /usr/X11R6/lib
+ /opt/gnome/lib
+ )
+
+ #
+ # The 12 suffix is thanks to the FreeBSD ports collection
+ #
+
+ FIND_LIBRARY(GTK2_gtk_LIBRARY
+ NAMES gtk-x11-2.0
+ PATHS ${_GTK2LinkDir}
+ /usr/lib
+ /usr/local/lib
+ /usr/openwin/lib
+ /usr/X11R6/lib
+ /opt/gnome/lib
+ )
+
+ FIND_LIBRARY( GTK2_gdk_LIBRARY
+ NAMES gdk-x11-2.0
+ PATHS ${_GDK2LinkDir}
+ /usr/lib
+ /usr/local/lib
+ /usr/openwin/lib
+ /usr/X11R6/lib
+ /opt/gnome/lib
+ )
+
+ FIND_LIBRARY( GTK2_gmodule_LIBRARY
+ NAMES gmodule-2.0
+ PATHS ${_GMODULE2inkDir}
+ /usr/lib
+ /usr/local/lib
+ /usr/openwin/lib
+ /usr/X11R6/lib
+ /opt/gnome/lib
+ )
+
+ FIND_LIBRARY( GTK2_glib_LIBRARY
+ NAMES glib-2.0
+ PATHS ${_GLIB2inkDir}
+ /usr/lib
+ /usr/local/lib
+ /usr/openwin/lib
+ /usr/X11R6/lib
+ /opt/gnome/lib
+ )
+
+ FIND_LIBRARY( GTK2_Xi_LIBRARY
+ NAMES Xi
+ PATHS /usr/lib
+ /usr/local/lib
+ /usr/openwin/lib
+ /usr/X11R6/lib
+ /opt/gnome/lib
+ )
+
+ FIND_LIBRARY( GTK2_gthread_LIBRARY
+ NAMES gthread-2.0
+ PATHS /usr/lib
+ /usr/local/lib
+ /usr/openwin/lib
+ /usr/X11R6/lib
+ /opt/gnome/lib
+ )
+
+ FIND_LIBRARY( GTK2_gobject_LIBRARY
+ NAMES gobject-2.0
+ PATHS
+ /opt/gnome/lib
+ )
+
+ IF(GTK2_gtk_INCLUDE_PATH)
+ IF(GTK2_glibconfig_INCLUDE_PATH)
+ IF(GTK2_glib_INCLUDE_PATH)
+ IF(GTK2_gtk_LIBRARY)
+ IF(GTK2_glib_LIBRARY)
+ IF(GTK2_pango_INCLUDE_PATH)
+ IF(GTK2_atk_INCLUDE_PATH)
+ IF(GTK2_cairo_INCLUDE_PATH)
+ # Assume that if gtk and glib were found, the other
+ # supporting libraries have also been found.
+
+ SET( GTK2_FOUND TRUE )
+ SET( GTK2_INCLUDE_DIR ${GTK2_gtk_INCLUDE_PATH}
+ ${GTK2_glibconfig_INCLUDE_PATH}
+ ${GTK2_glib_INCLUDE_PATH}
+ ${GTK2_pango_INCLUDE_PATH}
+ ${GTK2_gdkconfig_INCLUDE_PATH}
+ ${GTK2_atk_INCLUDE_PATH}
+ ${GTK2_cairo_INCLUDE_PATH})
+ SET( GTK2_LIBRARIES ${GTK2_gtk_LIBRARY}
+ ${GTK2_gdk_LIBRARY}
+ ${GTK2_glib_LIBRARY} )
+ #${GTK2_gobject_LIBRARY})
+
+ IF(GTK2_gmodule_LIBRARY)
+ SET(GTK2_LIBRARIES ${GTK2_LIBRARIES} ${GTK2_gmodule_LIBRARY})
+ ENDIF(GTK2_gmodule_LIBRARY)
+ IF(GTK2_gthread_LIBRARY)
+ SET(GTK2_LIBRARIES ${GTK2_LIBRARIES} ${GTK2_gthread_LIBRARY})
+ ENDIF(GTK2_gthread_LIBRARY)
+ ELSE(GTK2_cairo_INCLUDE_PATH)
+ MESSAGE("Can not find cairo")
+ ENDIF(GTK2_cairo_INCLUDE_PATH)
+ ELSE(GTK2_atk_INCLUDE_PATH)
+ MESSAGE("Can not find atk")
+ ENDIF(GTK2_atk_INCLUDE_PATH)
+
+ ELSE(GTK2_pango_INCLUDE_PATH)
+ MESSAGE("Can not find pango includes")
+ ENDIF(GTK2_pango_INCLUDE_PATH)
+ ELSE(GTK2_glib_LIBRARY)
+ MESSAGE("Can not find glib lib")
+ ENDIF(GTK2_glib_LIBRARY)
+ ELSE(GTK2_gtk_LIBRARY)
+ MESSAGE("Can not find gtk lib")
+ ENDIF(GTK2_gtk_LIBRARY)
+ ELSE(GTK2_glib_INCLUDE_PATH)
+ MESSAGE("Can not find glib includes")
+ ENDIF(GTK2_glib_INCLUDE_PATH)
+ ELSE(GTK2_glibconfig_INCLUDE_PATH)
+ MESSAGE("Can not find glibconfig")
+ ENDIF(GTK2_glibconfig_INCLUDE_PATH)
+ ELSE(GTK2_gtk_INCLUDE_PATH)
+ MESSAGE("Can not find gtk includes")
+ ENDIF(GTK2_gtk_INCLUDE_PATH)
+
+ if (GTK2_FOUND)
+ if (NOT GTK2_FIND_QUIETLY)
+ message(STATUS "Found GTK: ${GTK2_LIBRARIES}")
+ endif (NOT GTK2_FIND_QUIETLY)
+ else (GTK2_FOUND)
+ if (GTK2_FIND_REQUIRED)
+ message(FATAL_ERROR "Could NOT find GTK")
+ endif (GTK2_FIND_REQUIRED)
+ endif (GTK2_FOUND)
+
+
+ MARK_AS_ADVANCED(
+ GTK2_gdk_LIBRARY
+ GTK2_glib_INCLUDE_PATH
+ GTK2_glib_LIBRARY
+ GTK2_glibconfig_INCLUDE_PATH
+ GTK2_gmodule_LIBRARY
+ GTK2_gthread_LIBRARY
+ GTK2_Xi_LIBRARY
+ GTK2_gtk_INCLUDE_PATH
+ GTK2_gtk_LIBRARY
+ GTK2_gtkgl_INCLUDE_PATH
+ GTK2_gtkgl_LIBRARY
+ GTK2_atk_INCLUDE_PATH
+ GTK2_gdkconfig_INCLUDE_PATH
+# GTK2_gobject_LIBRARY
+ GTK2_pango_INCLUDE_PATH
+ )
+
+ELSE(UNIX)
+ # MESSAGE("FindGTK2 is working on UNIX/LINUX, only!")
+ENDIF(UNIX)
+