aboutsummaryrefslogtreecommitdiffstats
path: root/cmake/modules/FindGLIB2.cmake
diff options
context:
space:
mode:
authorJörg Mayer <jmayer@loplof.de>2006-10-24 17:39:32 +0000
committerJörg Mayer <jmayer@loplof.de>2006-10-24 17:39:32 +0000
commite8a5a41045ea1af89a2111701df3c03093b59373 (patch)
tree215b64b41fa646e48e166994be2401233b870af2 /cmake/modules/FindGLIB2.cmake
parent493ee85cb01efb108d46bd61cca89487f10a3883 (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.cmake313
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)