diff options
author | Jörg Mayer <jmayer@loplof.de> | 2006-10-24 17:39:32 +0000 |
---|---|---|
committer | Jörg Mayer <jmayer@loplof.de> | 2006-10-24 17:39:32 +0000 |
commit | e8a5a41045ea1af89a2111701df3c03093b59373 (patch) | |
tree | 215b64b41fa646e48e166994be2401233b870af2 /cmake/modules/FindGLIB2.cmake | |
parent | 493ee85cb01efb108d46bd61cca89487f10a3883 (diff) |
Parts of http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=1179
Frederic Heem:
* More cmake system checks. It compiles dumpcap without running configure,
svn path=/trunk/; revision=19672
Diffstat (limited to 'cmake/modules/FindGLIB2.cmake')
-rw-r--r-- | cmake/modules/FindGLIB2.cmake | 313 |
1 files changed, 215 insertions, 98 deletions
diff --git a/cmake/modules/FindGLIB2.cmake b/cmake/modules/FindGLIB2.cmake index 1dda572c62..19d4f8e87f 100644 --- a/cmake/modules/FindGLIB2.cmake +++ b/cmake/modules/FindGLIB2.cmake @@ -1,127 +1,244 @@ +# - Try to find GLIB2 +# Once done this will define # -# try to find GLIB2 (and glib) and GLIBGLArea +# GLIB2_FOUND - system has GLIB2 +# GLIB2_INCLUDE_DIRS - the GLIB2 include directory +# GLIB2_LIBRARIES - Link these to use GLIB2 +# GLIB2_DEFINITIONS - Compiler switches required for using GLIB2 # +# Copyright (c) 2006 Andreas Schneider <mail@cynapses.org> +# Copyright (c) 2006 Philippe Bernery <philippe.bernery@gmail.com> +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. # -# Jan Woetzel 06/2004: added /opt/gnome/include/gtk-1.2 path and $ENV{GLIB2_HOME} -# Andreas Schneider 08/2006: added pkgconfig, added lib64 include dirs -# Joerg Mayer 2006-08-31: rename GLIB to GLIB2 - - -# GLIB2_INCLUDE_DIR - Directories to include to use GLIB -# GLIB2_LIBRARIES - Files to link against to use GLIB -# GLIB2_FOUND - If false, don't try to use GLIB -# don't even bother under WIN32 -IF(UNIX) +if (GLIB2_LIBRARIES AND GLIB2_INCLUDE_DIRS) + # in cache already + set(GLIB2_FOUND TRUE) +else (GLIB2_LIBRARIES AND GLIB2_INCLUDE_DIRS) # use pkg-config to get the directories and then use these values # in the FIND_PATH() and FIND_LIBRARY() calls - INCLUDE(UsePkgConfig) - - # 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(GLIB2_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 + include(UsePkgConfig) + + ## GLibConfig + find_path(GLIBCONFIG_INCLUDE_DIR + NAMES + glibconfig.h + PATHS + ${_GLIB2IncDir} + /opt/gnome/lib64/glib-2.0/include + /opt/gnome/lib/glib-2.0/include + /opt/lib/glib-2.0/include + /usr/lib64/glib-2.0/include + /usr/lib/glib-2.0/include + /sw/lib/glib-2.0/include + ) + ## + + ## Glib + pkgconfig(glib-2.0 _GLIB2IncDir _GLIB2LinkDir _GLIB2LinkFlags _GLIB2Cflags) + + set(GLIB2_DEFINITIONS ${_GLIB2Cflags}) + + find_path(GLIB2_INCLUDE_DIR + NAMES + glib.h + PATHS + ${_GLIB2IncDir} + /opt/gnome/include/glib-2.0 + /usr/include/glib-2.0 + /usr/local/include/glib-2.0 + /opt/local/include/glib-2.0 + /sw/include/glib-2.0 ) - FIND_PATH(GLIB2_glib_INCLUDE_PATH glib.h - ${_GLIB2IncDir} - /opt/gnome/include/glib-2.0 - /usr/include/glib-2.0 + find_library(GLIB2_LIBRARY + NAMES + glib-2.0 + PATHS + ${_GLIB2LinkDir} + /opt/gnome/lib + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib ) - FIND_LIBRARY( GLIB2_gmodule_LIBRARY - NAMES gmodule-2.0 - PATHS ${_GMODULE2inkDir} - /usr/lib - /usr/local/lib - /usr/openwin/lib - /usr/X11R6/lib - /opt/gnome/lib + set(GLIB2_LIBRARIES ${GLIB2_LIBRARY}) + set(GLIB2_INCLUDE_DIRS ${GLIB2_INCLUDE_DIR}) + ## + + ## GModule + pkgconfig(gmodule-2.0 _GMODULE2IncDir _GMODULE2LinkDir _GMODULE2LinkFlags _GMODULE2Cflags) + + set(GMODULE2_DEFINITIONS ${_GMODULE2Cflags}) + + find_path(GMODULE2_INCLUDE_DIR + NAMES + gmodule.h + PATHS + ${_GMODULE2IncDir} + /opt/gnome/include/glib-2.0 + /usr/include/glib-2.0 + /usr/local/include/glib-2.0 + /opt/local/include/glib-2.0 + /sw/include/glib-2.0 + ) + + find_library(GMODULE2_LIBRARY + NAMES + gmodule-2.0 + PATHS + ${_GMODULE2LinkDir} + /opt/gnome/lib + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + if (GMODULE2_LIBRARY AND GMODULE2_INCLUDE_DIR) + set(GMODULE2_FOUND TRUE) + endif (GMODULE2_LIBRARY AND GMODULE2_INCLUDE_DIR) + ## + + ## GThread + pkgconfig(gthread-2.0 _GTHREAD2IncDir _GTHREAD2LinkDir _GTHREAD2LinkFlags _GTHREAD2Cflags) + + set(GTHREAD2_DEFINITIONS ${_GTHREAD2Cflags}) + + find_path(GTHREAD2_INCLUDE_DIR + NAMES + gthread.h + PATHS + ${_GTHREAD2IncDir} + /opt/gnome/include/glib-2.0 + /usr/include/glib-2.0 + /usr/local/include/glib-2.0 + /opt/local/include/glib-2.0 + /sw/include/glib-2.0 + PATH_SUFFIXES + glib + ) + + find_library(GTHREAD2_LIBRARY + NAMES + gthread-2.0 + PATHS + ${_GTHREAD2LinkDir} + /opt/gnome/lib + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib ) - FIND_LIBRARY( GLIB2_glib_LIBRARY - NAMES glib-2.0 - PATHS ${_GLIB2inkDir} - /usr/lib - /usr/local/lib - /usr/openwin/lib - /usr/X11R6/lib - /opt/gnome/lib + if (GTHREAD2_LIBRARY AND GTHREAD2_INCLUDE_DIR) + set(GTHREAD2_FOUND TRUE) + endif (GTHREAD2_LIBRARY AND GTHREAD2_INCLUDE_DIR) + ## + + ## libintl + find_path(LIBINTL_INCLUDE_DIR + NAMES + libintl.h + PATHS + /opt/gnome/include/glib-2.0 + /usr/include/glib-2.0 + /usr/local/include/glib-2.0 + /opt/local/include/glib-2.0 + /sw/include/glib-2.0 + ) + + find_library(LIBINTL_LIBRARY + NAMES + intl + PATHS + /opt/gnome/lib + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib ) - FIND_LIBRARY( GLIB2_gthread_LIBRARY - NAMES gthread-2.0 - PATHS /usr/lib - /usr/local/lib - /usr/openwin/lib - /usr/X11R6/lib - /opt/gnome/lib + if (LIBINTL_LIBRARY AND LIBINTL_INCLUDE_DIR) + set(LIBINTL_FOUND TRUE) + endif (LIBINTL_LIBRARY AND LIBINTL_INCLUDE_DIR) + ## + + ## libiconv + find_path(LIBICONV_INCLUDE_DIR + NAMES + iconv.h + PATHS + /opt/gnome/include/glib-2.0 + /usr/include/glib-2.0 + /usr/local/include/glib-2.0 + /opt/local/include/glib-2.0 + /sw/include/glib-2.0 + ) + + find_library(LIBICONV_LIBRARY + NAMES + iconv + PATHS + /opt/gnome/lib + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib ) - FIND_LIBRARY( GLIB2_gobject_LIBRARY - NAMES gobject-2.0 - PATHS - /opt/gnome/lib + if (LIBICONV_LIBRARY AND LIBICONV_INCLUDE_DIR) + set(LIBICONV_FOUND TRUE) + endif (LIBICONV_LIBRARY AND LIBICONV_INCLUDE_DIR) + ## + + set(GLIB2_INCLUDE_DIRS + ${GLIB_INCLUDE_DIR} + ${GLIBCONFIG_INCLUDE_DIR} + ) + set(GLIB2_LIBRARIES + ${GLIB_LIBRARY} ) - IF(GLIB2_glibconfig_INCLUDE_PATH) - IF(GLIB2_glib_INCLUDE_PATH) - IF(GLIB2_glib_LIBRARY) - - SET( GLIB2_FOUND TRUE ) - SET( GLIB2_INCLUDE_DIR - ${GLIB2_glibconfig_INCLUDE_PATH} - ${GLIB2_glib_INCLUDE_PATH}) - SET( GLIB2_LIBRARIES ${GLIB2_glib_LIBRARY} ) - - IF(GLIB2_gmodule_LIBRARY) - SET(GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${GLIB2_gmodule_LIBRARY}) - ENDIF(GLIB2_gmodule_LIBRARY) - IF(GLIB2_gthread_LIBRARY) - SET(GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${GLIB2_gthread_LIBRARY}) - ENDIF(GLIB2_gthread_LIBRARY) - - ELSE(GLIB2_glib_LIBRARY) - MESSAGE("Can not find glib lib") - ENDIF(GLIB2_glib_LIBRARY) - ELSE(GLIB2_glib_INCLUDE_PATH) - MESSAGE("Can not find glib includes") - ENDIF(GLIB2_glib_INCLUDE_PATH) - ELSE(GLIB2_glibconfig_INCLUDE_PATH) - MESSAGE("Can not find glibconfig") - ENDIF(GLIB2_glibconfig_INCLUDE_PATH) + if (GMODULE2_FOUND) + set(GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${GMODULE2_LIBRARY}) + set(GLIB2_INCLUDE_DIRS ${GLIB2_INCLUDE_DIRS} ${GMODULE2_INCLUDE_DIR}) + endif (GMODULE2_FOUND) + + if (GTHREAD2_FOUND) + set(GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${GTHREAD2_LIBRARY}) + set(GLIB2_INCLUDE_DIRS ${GLIB2_INCLUDE_DIRS} ${GTHREAD2_INCLUDE_DIR}) + endif (GTHREAD2_FOUND) + + if (LIBINTL_FOUND) + set(GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${LIBINTL_LIBRARY}) + set(GLIB2_INCLUDE_DIRS ${GLIB2_INCLUDE_DIRS} ${LIBINTL_INCLUDE_DIR}) + endif (LIBINTL_FOUND) + + if (LIBICONV_FOUND) + set(GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${LIBICONV_LIBRARY}) + set(GLIB2_INCLUDE_DIRS ${GLIB2_INCLUDE_DIRS} ${LIBICONV_INCLUDE_DIR}) + endif (LIBICONV_FOUND) + + if (GLIB2_INCLUDE_DIRS AND GLIB2_LIBRARIES) + set(GLIB2_FOUND TRUE) + endif (GLIB2_INCLUDE_DIRS AND GLIB2_LIBRARIES) if (GLIB2_FOUND) if (NOT GLIB2_FIND_QUIETLY) - message(STATUS "Found GLIB: ${GLIB2_LIBRARIES}") + message(STATUS "Found GLIB2: ${GLIB2_LIBRARIES}") endif (NOT GLIB2_FIND_QUIETLY) else (GLIB2_FOUND) if (GLIB2_FIND_REQUIRED) - message(FATAL_ERROR "Could NOT find GLIB") + message(FATAL_ERROR "Could not find GLIB2") endif (GLIB2_FIND_REQUIRED) endif (GLIB2_FOUND) + # show the GLIB2_INCLUDE_DIRS and GLIB2_LIBRARIES variables only in the advanced view + mark_as_advanced(GLIB2_INCLUDE_DIRS GLIB2_LIBRARIES) - MARK_AS_ADVANCED( - GLIB2_glib_INCLUDE_PATH - GLIB2_glib_LIBRARY - GLIB2_glibconfig_INCLUDE_PATH - GLIB2_gmodule_LIBRARY - GLIB2_gthread_LIBRARY - ) - -ELSE(UNIX) - # MESSAGE("FindGLIB2 is working on UNIX/LINUX, only!") -ENDIF(UNIX) - +endif (GLIB2_LIBRARIES AND GLIB2_INCLUDE_DIRS) |