wireshark/cmake/modules/FindGTK2.cmake

261 lines
6.9 KiB
CMake
Raw Normal View History

#
# 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)