index 9c7346e1d4a8d165e46490debc0f3d556f42be81..b8b88bf4d9ad6dc621ca6bae5480e6b83d6b6baa 100644 (file)
+# - FindGTK2.cmake
+# This module finds the GTK2/GTKMM widget libraries
#
-# try to find GTK2 (and glib) and GTK2GLArea
+# Specify one or more of the following components
+# as you call this Find macro:
#
-# GTK2_INCLUDE_DIRS - Directories to include to use GTK2
-# GTK2_LIBRARIES - Files to link against to use GTK2
-# GTK2_FOUND - If false, don't try to use GTK2
-# GTK2_GL_FOUND - If false, don't try to use GTK2's GL features
+# gtk
+# gtkmm
+# glade
+# glademm
#
-###################################################################
+# The following variables will be defined for your use
+# GTK2_FOUND - Were all of your specified components found?
+# GTK2_INCLUDE_DIRS - All include directories
+# GTK2_LIBRARIES - All libraries
#
-# Copyright (c) 2004 Jan Woetzel
-# Copyright (c) 2006 Andreas Schneider <mail@cynapses.org>
+# Optional variables you can define prior to calling this module
+# GTK2_DEBUG - Enables verbose debugging of the module
+# GTK2_SKIP_MARK_AS_ADVANCED - Disable marking cache variables as advanced
#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
+#=================
+# Example Usage:
#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
+# FIND_PACKAGE(GTK2 COMPONENTS gtk)
+# or
+# FIND_PACKAGE(GTK2 COMPONENTS gtk glade) # if you're also using glade
#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor,
-# Boston, MA 02110-1301, USA.
+# INCLUDE_DIRECTORIES(${GTK2_INCLUDE_DIRS})
+# ADD_EXECUTABLE(foo foo.cc)
+# TARGET_LINK_LIBRARIES(foo ${GTK2_LIBRARIES})
+#=================
+#
+# Copyright (c) 2008
+# Philip Lowman <philip@yhbt.com>
#
-###################################################################
+# Version 0.6 (1/8/08)
+# Added GTK2_SKIP_MARK_AS_ADVANCED option
+# Version 0.5 (12/19/08)
+# Second release to cmake mailing list
#
-# Copyright (c) 2004 Jan Woetzel
-# Copyright (c) 2006 Andreas Schneider <mail@cynapses.org>
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# * Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#
-# * Neither the name of the <ORGANIZATION> nor the names of its
-# contributors may be used to endorse or promote products derived
-# from this software without specific prior written permission.
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+#=============================================================
+# _GTK2_FIND_INCLUDE_DIR
+# Internal macro to find the GTK include directories
+# _var = variable to set
+# _hdr = header file to look for
+#=============================================================
+MACRO(_GTK2_FIND_INCLUDE_DIR _var _hdr)
+
+ IF(GTK2_DEBUG)
+ MESSAGE(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}]
+ _GTK2_FIND_INCLUDE_DIR( ${_var} ${_hdr} )")
+ ENDIF()
+
+ SET(_relatives
+ # FIXME
+ glibmm-2.4
+ glib-2.0
+ atk-1.0
+ atkmm-1.6
+ cairo
+ cairomm-1.0
+ gdkmm-2.4
+ giomm-2.4
+ gtk-2.0
+ gtkmm-2.4
+ libglade-2.0
+ libglademm-2.4
+ pango-1.0
+ pangomm-1.4
+ sigc++-2.0
+ )
+
+ SET(_suffixes)
+ FOREACH(_d ${_relatives})
+ LIST(APPEND _suffixes ${_d})
+ LIST(APPEND _suffixes ${_d}/include) # for /usr/lib/gtk-2.0/include
+ ENDFOREACH()
+
+ IF(GTK2_DEBUG)
+ MESSAGE(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] include suffixes = ${_suffixes}")
+ ENDIF()
+
+ FIND_PATH(${_var} ${_hdr}
+ PATHS
+ /usr/local/include
+ /usr/local/lib
+ /usr/include
+ /usr/lib
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/include
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib
+ PATH_SUFFIXES
+ ${_suffixes}
+ )
+
+ IF(${_var})
+ LIST(APPEND GTK2_INCLUDE_DIRS ${${_var}})
+ IF(NOT GTK2_SKIP_MARK_AS_ADVANCED)
+ MARK_AS_ADVANCED(${_var})
+ ENDIF()
+ ENDIF()
+ENDMACRO()
+
+#=============================================================
+# _GTK2_FIND_LIBRARY
+# Internal macro to find libraries packaged with GTK2
+# _var = library variable to create
+#=============================================================
+MACRO(_GTK2_FIND_LIBRARY _var _lib _expand_vc _append_version)
+
+ IF(GTK2_DEBUG)
+ MESSAGE(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}]
+ _GTK2_FIND_LIBRARY( ${_var} ${_lib} ${_expand_vc} ${_append_version} )")
+ ENDIF()
+
+ # Not GTK versions per se but the versions encoded into Windows
+ # import libraries (GtkMM 2.14.1 has a gtkmm-vc80-2_4.lib for example)
+ # Also the MSVC libraries use _ for . (this is handled below)
+ SET(_versions 2.20 2.18 2.16 2.14 2.12
+ 2.10 2.8 2.6 2.4 2.2 2.0
+ 1.20 1.18 1.16 1.14 1.12
+ 1.10 1.8 1.6 1.4 1.2 1.0)
+
+ SET(_library)
+ SET(_library_d)
+
+ SET(_library ${_lib})
+
+ IF(${_expand_vc})
+ # Add vc80/vc90 midfixes
+ IF(MSVC80)
+ SET(_library ${_library}-vc80)
+ SET(_library_d ${_library}-d)
+ ELSEIF(MSVC90)
+ SET(_library ${_library}-vc90)
+ SET(_library_d ${_library}-d)
+ ENDIF()
+ ENDIF()
+
+ IF(GTK2_DEBUG)
+ MESSAGE(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] After midfix addition = ${_library} and ${_library_d}")
+ ENDIF()
+
+ SET(_lib_list)
+ SET(_libd_list)
+ IF(${_append_version})
+ FOREACH(_ver ${_versions})
+ LIST(APPEND _lib_list "${_library}-${_ver}")
+ LIST(APPEND _libd_list "${_library_d}-${_ver}")
+ ENDFOREACH()
+ ELSE()
+ SET(_lib_list ${_library})
+ SET(_libd_list ${_library_d})
+ ENDIF()
+
+ IF(GTK2_DEBUG)
+ MESSAGE(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] library list = ${_lib_list} and library debug list = ${_libd_list}")
+ ENDIF()
+
+ # For some silly reason the MSVC libraries use _ instead of .
+ # in the version fields
+ IF(${_expand_vc} AND MSVC)
+ SET(_no_dots_lib_list)
+ SET(_no_dots_libd_list)
+ FOREACH(_l ${_lib_list})
+ STRING(REPLACE "." "_" _no_dots_library ${_l})
+ LIST(APPEND _no_dots_lib_list ${_no_dots_library})
+ ENDFOREACH()
+ # And for debug
+ SET(_no_dots_libsd_list)
+ FOREACH(_l ${_libd_list})
+ STRING(REPLACE "." "_" _no_dots_libraryd ${_l})
+ LIST(APPEND _no_dots_libd_list ${_no_dots_libraryd})
+ ENDFOREACH()
+
+ # Copy list back to original names
+ SET(_lib_list ${_no_dots_lib_list})
+ SET(_libd_list ${_no_dots_libd_list})
+ ENDIF()
+
+ IF(GTK2_DEBUG)
+ MESSAGE(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] Whilst searching for ${_var} our proposed library list is ${_lib_list}")
+ ENDIF()
+
+ FIND_LIBRARY(${_var}
+ NAMES ${_lib_list}
+ PATHS
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib
+ )
+ IF(${_expand_vc} AND MSVC)
+
+ IF(GTK2_DEBUG)
+ MESSAGE(STATUS "[FindGTK2.cmake:${CMAKE_CURRENT_LIST_LINE}] Whilst searching for ${_var}_DEBUG our proposed library list is ${_libd_list}")
+ ENDIF()
+
+ FIND_LIBRARY(${_var}_DEBUG
+ NAMES ${_libd_list}
+ PATHS
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]/lib
+ )
+ IF(NOT GTK2_SKIP_MARK_AS_ADVANCED)
+ MARK_AS_ADVANCED(${_var}_DEBUG)
+ ENDIF()
+ ELSE()
+ SET(${_var}_DEBUG ${${_var}})
+ ENDIF()
+
+ IF(${_var})
+ LIST(APPEND GTK2_LIBRARIES optimized ${${_var}} debug ${${_var}_DEBUG} )
+ IF(NOT GTK2_SKIP_MARK_AS_ADVANCED)
+ MARK_AS_ADVANCED(${_var})
+ ENDIF()
+ ENDIF()
+ENDMACRO()
+#=============================================================
+
#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
+# main()
#
-IF (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)
- # in cache already
- SET(GTK2_FOUND TRUE)
-ELSE (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)
-
- #check whether cmake version is 2.4 or greater
- if (${CMAKE_MAJOR_VERSION} GREATER 1 AND ${CMAKE_MINOR_VERSION} GREATER 3)
- SET(GTK2_CMAKE_24 TRUE)
- endif (${CMAKE_MAJOR_VERSION} GREATER 1 AND ${CMAKE_MINOR_VERSION} GREATER 3)
-
- # use pkg-config to get the directories and then use these values
- # in the FIND_PATH() and FIND_LIBRARY() calls
- if (GTK2_CMAKE_24)
- include(UsePkgConfig)
- else (GTK2_CMAKE_24)
- find_package(PkgConfig)
- endif (GTK2_CMAKE_24)
- INCLUDE(UsePkgConfig)
-
- if (GTK2_CMAKE_24)
- pkgconfig(gtk+-2.0 _GTK2_INCLUDEDIR _GTK2_LIBDIR _GTK2_LDFLAGS _GTK2_CFLAGS)
- MESSAGE(STATUS "DEBUG pkgconfig found: ${_GTK2_INCLUDEDIR} ${_GTK2_LIBDIR} ${_GTK2_LDFLAGS} ${_GTK2_CFLAGS}")
- else (GTK2_CMAKE_24)
- if (PKG_CONFIG_FOUND)
- pkg_check_modules(_GTK2 gtk+-2.0)
- endif (PKG_CONFIG_FOUND)
- endif (GTK2_CMAKE_24)
-
- FIND_PATH(GTK2_GTK_INCLUDE_PATH gtk/gtk.h
- $ENV{GTK2_HOME}
- ${_GTK2_INCLUDEDIR}
- /usr/include/gtk-2.0
- /usr/local/include/gtk-2.0
- /opt/gnome/include/gtk-2.0
- $ENV{DEVLIBS_PATH}//include//
- )
+SET(GTK2_FOUND)
+SET(GTK2_INCLUDE_DIRS)
+SET(GTK2_LIBRARIES)
- # 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>
- if (GTK2_CMAKE_24)
- pkgconfig(glib-2.0 _GLIB2_INCLUDEDIR _GLIB2inkDir _GLIB2_LDFLAGS _GLIB2_CFLAGS)
- pkgconfig(gmodule-2.0 _GMODULE2_INCLUDEDIR _GMODULE2inkDir _GMODULE2_LDFLAGS _GMODULE2_CFLAGS)
- else (GTK2_CMAKE_24)
- if (PKG_CONFIG_FOUND)
- pkg_check_modules(_GLIB2 glib-2.0)
- pkg_check_modules(_GMODULE2 gmodule-2.0)
- endif (PKG_CONFIG_FOUND)
- endif (GTK2_CMAKE_24)
-
- SET(GDIR /opt/gnome/lib/glib-2.0/include)
- FIND_PATH(GTK2_GLIBCONFIG_INCLUDE_PATH glibconfig.h
- ${_GLIB2_INCLUDEDIR}
- /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
- $ENV{DEVLIBS_PATH}//include//
- )
- #MESSAGE(STATUS "DEBUG: GTK2_GLIBCONFIG_INCLUDE_PATH = ${GTK2_GLIBCONFIG_INCLUDE_PATH}")
+IF(NOT GTK2_FIND_COMPONENTS)
+ MESSAGE(FATAL_ERROR "You must specify components with this module. See the documentation at the top of FindGTK2.cmake")
+ENDIF()
- FIND_PATH(GTK2_GLIB_INCLUDE_PATH glib.h
- ${_GLIB2_INCLUDEDIR}
- /opt/gnome/include/glib-2.0
- /usr/include/glib-2.0
- $ENV{DEVLIBS_PATH}//include//
- )
- #MESSAGE(STATUS "DEBUG: GTK2_GLIBCONFIG_INCLUDE_PATH = ${GTK2_GLIBCONFIG_INCLUDE_PATH}")
-
- FIND_PATH(GTK2_GTKGL_INCLUDE_PATH gtkgl/gtkglarea.h
- ${_GLIB2_INCLUDEDIR}
- /usr/include
- /usr/local/include
- /usr/openwin/share/include
- /opt/gnome/include
- $ENV{DEVLIBS_PATH}//include//
- )
+FOREACH(_component ${GTK2_FIND_COMPONENTS})
+ IF(_component STREQUAL "gtk")
+
+ _GTK2_FIND_INCLUDE_DIR(GTK2_GLIB_INCLUDE_DIR glib.h)
+ _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBCONFIG_INCLUDE_DIR glibconfig.h)
+ _GTK2_FIND_LIBRARY (GTK2_GLIB_LIBRARY glib 0 1)
- if (GTK2_CMAKE_24)
- pkgconfig(pango _PANGO_INCLUDEDIR _PANGOinkDir _PANGO_LDFLAGS _PANGO_CFLAGS)
- else (GTK2_CMAKE_24)
- if (PKG_CONFIG_FOUND)
- pkg_check_modules(_PANGO pango)
- endif (PKG_CONFIG_FOUND)
- endif (GTK2_CMAKE_24)
-
- FIND_PATH(GTK2_PANGO_INCLUDE_PATH pango/pango.h
- ${_PANGO_INCLUDEDIR}
- /opt/gnome/include/pango-1.0
- /usr/include/pango-1.0
- $ENV{DEVLIBS_PATH}//include//
- )
+ _GTK2_FIND_INCLUDE_DIR(GTK2_GDK_INCLUDE_DIR gdk/gdk.h)
+ _GTK2_FIND_INCLUDE_DIR(GTK2_GDKCONFIG_INCLUDE_DIR gdkconfig.h)
+ _GTK2_FIND_LIBRARY (GTK2_GDK_LIBRARY gdk-x11 0 1)
+ _GTK2_FIND_LIBRARY (GTK2_GDK_LIBRARY gdk-win32 0 1)
- if (GTK2_CMAKE_24)
- pkgconfig(gdk-2.0 _GDK2_INCLUDEDIR _GDK2inkDir _GDK2_LDFLAGS _GDK2_CFLAGS)
- else (GTK2_CMAKE_24)
- if (PKG_CONFIG_FOUND)
- pkg_check_modules(_GDK2 gdk-2.0)
- endif (PKG_CONFIG_FOUND)
- endif (GTK2_CMAKE_24)
-
- FIND_PATH(GTK2_GDKCONFIG_INCLUDE_PATH gdkconfig.h
- ${_GDK2_INCLUDEDIR}
- /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
- $ENV{DEVLIBS_PATH}//include//
- )
+ _GTK2_FIND_INCLUDE_DIR(GTK2_GTK_INCLUDE_DIR gtk/gtk.h)
+ _GTK2_FIND_LIBRARY (GTK2_GTK_LIBRARY gtk-x11 0 1)
+ _GTK2_FIND_LIBRARY (GTK2_GTK_LIBRARY gtk-win32 0 1)
- if (GTK2_CMAKE_24)
- pkgconfig(cairo _CAIRO_INCLUDEDIR _CAIROinkDir _CAIRO_LDFLAGS _CAIRO_CFLAGS)
- else (GTK2_CMAKE_24)
- if (PKG_CONFIG_FOUND)
- pkg_check_modules(_CAIRO cairo)
- endif (PKG_CONFIG_FOUND)
- endif (GTK2_CMAKE_24)
-
- FIND_PATH(GTK2_CAIRO_INCLUDE_PATH cairo.h
- ${_CAIRO_INCLUDEDIR}
- /opt/gnome/include/cairo
- /usr/include
- /usr/include/cairo
- $ENV{DEVLIBS_PATH}//include//
- )
- #MESSAGE(STATUS "DEBUG: GTK2_CAIRO_INCLUDE_PATH = ${GTK2_CAIRO_INCLUDE_PATH}")
-
- if (GTK2_CMAKE_24)
- pkgconfig(atk _ATK_INCLUDEDIR _ATKinkDir _ATK_LDFLAGS _ATK_CFLAGS)
- else (GTK2_CMAKE_24)
- if (PKG_CONFIG_FOUND)
- pkg_check_modules(_ATK atk)
- endif (PKG_CONFIG_FOUND)
- endif (GTK2_CMAKE_24)
-
- FIND_PATH(GTK2_ATK_INCLUDE_PATH atk/atk.h
- ${_ATK_INCLUDEDIR}
- /opt/gnome/include/atk-1.0
- /usr/include/atk-1.0
- $ENV{DEVLIBS_PATH}//include//
- )
- #MESSAGE(STATUS "DEBUG: GTK2_ATK_INCLUDE_PATH = ${GTK2_ATK_INCLUDE_PATH}")
-
- FIND_LIBRARY(GTK2_GTKGL_LIBRARY
- NAMES
- gtkgl
- PATHS
- ${_GTK2_INCLUDEDIR}
- /usr/lib
- /usr/local/lib
- /usr/openwin/lib
- /usr/X11R6/lib
- /opt/gnome/lib
- )
+ _GTK2_FIND_INCLUDE_DIR(GTK2_CAIRO_INCLUDE_DIR cairo.h)
+ _GTK2_FIND_LIBRARY (GTK2_CAIRO_LIBRARY cairo 0 0)
- FIND_LIBRARY(GTK2_GTK_LIBRARY
- NAMES
- gtk-x11-2.0
- PATHS
- ${_GTK2_LIBDIR}
- /usr/lib
- /usr/local/lib
- /usr/openwin/lib
- /usr/X11R6/lib
- /opt/gnome/lib
- )
+ _GTK2_FIND_INCLUDE_DIR(GTK2_PANGO_INCLUDE_DIR pango/pango.h)
+ _GTK2_FIND_LIBRARY (GTK2_PANGO_LIBRARY pango 0 1)
- FIND_LIBRARY(GTK2_GDK_LIBRARY
- NAMES
- gdk-x11-2.0
- PATHS
- ${_GDK2_LIBDIR}
- /usr/lib
- /usr/local/lib
- /usr/openwin/lib
- /usr/X11R6/lib
- /opt/gnome/lib
- )
+ _GTK2_FIND_INCLUDE_DIR(GTK2_ATK_INCLUDE_DIR atk/atk.h)
+ _GTK2_FIND_LIBRARY (GTK2_ATK_LIBRARY atk 0 1)
- FIND_LIBRARY(GTK2_GMODULE_LIBRARY
- NAMES
- gmodule-2.0
- PATHS
- ${_GMODULE2_LIBDIR}
- /usr/lib
- /usr/local/lib
- /usr/openwin/lib
- /usr/X11R6/lib
- /opt/gnome/lib
- )
+ #ELSEIF(_component STREQUAL "gdk_pixbuf")
+ #_GTK2_FIND_INCLUDE_DIR(GTK2_GDKPIXBUF_INCLUDE_DIR gdk-pixbuf/gdk-pixbuf.h)
+ #_GTK2_FIND_LIBRARY (GTK2_GDKPIXBUF_LIBRARY gdk_pixbuf 0 1)
- FIND_LIBRARY(GTK2_GLIB_LIBRARY
- NAMES
- glib-2.0
- PATHS
- ${_GLIB2_LIBDIR}
- /usr/lib
- /usr/local/lib
- /usr/openwin/lib
- /usr/X11R6/lib
- /opt/gnome/lib
- )
+ ELSEIF(_component STREQUAL "gtkmm")
- FIND_LIBRARY(GTK2_Xi_LIBRARY
- NAMES
- Xi
- PATHS
- /usr/lib
- /usr/local/lib
- /usr/openwin/lib
- /usr/X11R6/lib
- /opt/gnome/lib
- )
+ _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBMM_INCLUDE_DIR glibmm.h)
+ _GTK2_FIND_INCLUDE_DIR(GTK2_GLIBMMCONFIG_INCLUDE_DIR glibmmconfig.h)
+ _GTK2_FIND_LIBRARY (GTK2_GLIBMM_LIBRARY glibmm 1 1)
- FIND_LIBRARY(GTK2_GTHREAD_LIBRARY
- NAMES
- gthread-2.0
- PATHS
- /usr/lib
- /usr/local/lib
- /usr/openwin/lib
- /usr/X11R6/lib
- /opt/gnome/lib
- )
+ _GTK2_FIND_INCLUDE_DIR(GTK2_GDKMM_INCLUDE_DIR gdkmm.h)
+ _GTK2_FIND_INCLUDE_DIR(GTK2_GDKMMCONFIG_INCLUDE_DIR gdkmmconfig.h)
+ _GTK2_FIND_LIBRARY (GTK2_GDKMM_LIBRARY gdkmm 1 1)
+ _GTK2_FIND_INCLUDE_DIR(GTK2_GTKMM_INCLUDE_DIR gtkmm.h)
+ _GTK2_FIND_INCLUDE_DIR(GTK2_GTKMMCONFIG_INCLUDE_DIR gtkmmconfig.h)
+ _GTK2_FIND_LIBRARY (GTK2_GTKMM_LIBRARY gtkmm 1 1)
- FIND_LIBRARY(GTK2_GOBJECT_LIBRARY
- NAMES
- gobject-2.0
- PATHS
- /usr/lib
- /usr/local/lib
- /usr/openwin/lib
- /usr/X11R6/lib
- /opt/gnome/lib
- )
+ _GTK2_FIND_INCLUDE_DIR(GTK2_CAIROMM_INCLUDE_DIR cairomm/cairomm.h)
+ _GTK2_FIND_LIBRARY (GTK2_CAIROMM_LIBRARY cairomm 1 1)
- 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_DIRS
- ${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}
- )
- SET(GTK2_LIBRARIES ${GTK2_LIBRARIES})
- ENDIF(GTK2_GTHREAD_LIBRARY)
- ELSE(GTK2_CAIRO_INCLUDE_PATH)
- MESSAGE(STATUS "Can not find cairo")
- ENDIF(GTK2_CAIRO_INCLUDE_PATH)
- ELSE(GTK2_ATK_INCLUDE_PATH)
- MESSAGE(STATUS "Can not find atk")
- ENDIF(GTK2_ATK_INCLUDE_PATH)
- ELSE(GTK2_PANGO_INCLUDE_PATH)
- MESSAGE(STATUS "Can not find pango includes")
- ENDIF(GTK2_PANGO_INCLUDE_PATH)
- ELSE(GTK2_GLIB_LIBRARY)
- MESSAGE(STATUS "Can not find glib lib")
- ENDIF(GTK2_GLIB_LIBRARY)
- ELSE(GTK2_GTK_LIBRARY)
- MESSAGE(STATUS "Can not find gtk lib")
- ENDIF(GTK2_GTK_LIBRARY)
- ELSE(GTK2_GLIB_INCLUDE_PATH)
- MESSAGE(STATUS "Can not find glib includes")
- ENDIF(GTK2_GLIB_INCLUDE_PATH)
- ELSE(GTK2_GLIBCONFIG_INCLUDE_PATH)
- MESSAGE(STATUS "Can not find glibconfig")
- ENDIF(GTK2_GLIBCONFIG_INCLUDE_PATH)
- ELSE (GTK2_GTK_INCLUDE_PATH)
- MESSAGE(STATUS "Can not find gtk includes")
- ENDIF (GTK2_GTK_INCLUDE_PATH)
-
- IF (GTK2_FOUND)
- IF (NOT GTK2_FIND_QUIETLY)
- MESSAGE(STATUS "Found GTK2: ${GTK2_LIBRARIES}")
- ENDIF (NOT GTK2_FIND_QUIETLY)
- ELSE (GTK2_FOUND)
- IF (GTK2_FIND_REQUIRED)
- MESSAGE(SEND_ERROR "Could NOT find GTK2")
- 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
- )
-ENDIF (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)
+ _GTK2_FIND_INCLUDE_DIR(GTK2_PANGOMM_INCLUDE_DIR pangomm.h)
+ _GTK2_FIND_LIBRARY (GTK2_PANGOMM_LIBRARY pangomm 1 1)
+
+ _GTK2_FIND_INCLUDE_DIR(GTK2_SIGC++_INCLUDE_DIR sigc++/sigc++.h)
+ _GTK2_FIND_INCLUDE_DIR(GTK2_SIGC++CONFIG_INCLUDE_DIR sigc++config.h)
+ _GTK2_FIND_LIBRARY (GTK2_SIGC++_LIBRARY sigc 1 1)
+
+ _GTK2_FIND_INCLUDE_DIR(GTK2_GIOMM_INCLUDE_DIR giomm.h)
+ _GTK2_FIND_INCLUDE_DIR(GTK2_GIOMMCONFIG_INCLUDE_DIR giommconfig.h)
+ _GTK2_FIND_LIBRARY (GTK2_GIOMM_LIBRARY giomm 1 1)
+
+ _GTK2_FIND_INCLUDE_DIR(GTK2_ATKMM_INCLUDE_DIR atkmm.h)
+ _GTK2_FIND_LIBRARY (GTK2_ATKMM_LIBRARY atkmm 1 1)
+
+ ELSEIF(_component STREQUAL "glade")
+
+ _GTK2_FIND_INCLUDE_DIR(GTK2_GLADE_INCLUDE_DIR glade/glade.h)
+ _GTK2_FIND_LIBRARY (GTK2_GLADE_LIBRARY glade 0 1)
+
+ ELSEIF(_component STREQUAL "glademm")
+
+ _GTK2_FIND_INCLUDE_DIR(GTK2_GLADEMM_INCLUDE_DIR libglademm.h)
+ _GTK2_FIND_INCLUDE_DIR(GTK2_GLADEMMCONFIG_INCLUDE_DIR libglademmconfig.h)
+ _GTK2_FIND_LIBRARY (GTK2_GLADEMM_LIBRARY glademm 1 1)
+
+ ELSE()
+ MESSAGE(FATAL_ERROR "Unknown GTK2 component ${_component}")
+ ENDIF()
+ENDFOREACH()
+
+#
+# Try to enforce components
+#
-# vim:et ts=2 sw=2 comments=\:\#
+SET(_did_we_find_everything true) # This gets set to GTK2_FOUND
+
+INCLUDE(FindPackageHandleStandardArgs)
+
+FOREACH(_component ${GTK2_FIND_COMPONENTS})
+ STRING(TOUPPER ${_component} _COMPONENT_UPPER)
+
+ IF(_component STREQUAL "gtk")
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtk libraries were not found."
+ GTK2_GTK_LIBRARY
+ GTK2_GTK_INCLUDE_DIR
+
+ GTK2_GLIB_INCLUDE_DIR
+ GTK2_GLIBCONFIG_INCLUDE_DIR
+ GTK2_GLIB_LIBRARY
+
+ GTK2_GDK_INCLUDE_DIR
+ GTK2_GDKCONFIG_INCLUDE_DIR
+ GTK2_GDK_LIBRARY
+ )
+ ELSEIF(_component STREQUAL "gtkmm")
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "Some or all of the gtkmm libraries were not found."
+ GTK2_GTKMM_LIBRARY
+ GTK2_GTKMM_INCLUDE_DIR
+ GTK2_GTKMMCONFIG_INCLUDE_DIR
+
+ GTK2_GLIBMM_INCLUDE_DIR
+ GTK2_GLIBMMCONFIG_INCLUDE_DIR
+ GTK2_GLIBMM_LIBRARY
+
+ GTK2_GDKMM_INCLUDE_DIR
+ GTK2_GDKMMCONFIG_INCLUDE_DIR
+ GTK2_GDKMM_LIBRARY
+ )
+ ELSEIF(_component STREQUAL "glade")
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glade library was not found."
+ GTK2_GLADE_LIBRARY
+ GTK2_GLADE_INCLUDE_DIR
+ )
+ ELSEIF(_component STREQUAL "glademm")
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK2_${_COMPONENT_UPPER} "The glademm library was not found."
+ GTK2_GLADEMM_LIBRARY
+ GTK2_GLADEMM_INCLUDE_DIR
+ GTK2_GLADEMMCONFIG_INCLUDE_DIR
+ )
+ ENDIF()
+
+ IF(NOT GTK2_${_COMPONENT_UPPER}_FOUND)
+ SET(_did_we_find_everything false)
+ ENDIF()
+ENDFOREACH()
+
+SET(GTK2_FOUND ${_did_we_find_everything})