cmake/
[obnox/wireshark/wip.git] / cmake / modules / FindGLIB2.cmake
1 #
2 # try to find GLIB2 (and glib) and GLIBGLArea
3 #
4 #
5 # Jan Woetzel 06/2004: added /opt/gnome/include/gtk-1.2 path and $ENV{GLIB2_HOME}
6 # Andreas Schneider 08/2006: added pkgconfig, added lib64 include dirs
7 # Joerg Mayer 2006-08-31: rename GLIB to GLIB2
8
9
10 # GLIB2_INCLUDE_DIR   - Directories to include to use GLIB
11 # GLIB2_LIBRARIES     - Files to link against to use GLIB
12 # GLIB2_FOUND         - If false, don't try to use GLIB
13
14
15 # don't even bother under WIN32
16 IF(UNIX)
17   # use pkg-config to get the directories and then use these values
18   # in the FIND_PATH() and FIND_LIBRARY() calls
19   INCLUDE(UsePkgConfig)
20
21   # Some Linux distributions (e.g. Red Hat) have glibconfig.h
22   # and glib.h in different directories, so we need to look
23   # for both.
24   #  - Atanas Georgiev <atanas@cs.columbia.edu>
25   PKGCONFIG(glib-2.0 _GLIB2IncDir _GLIB2inkDir _GLIB2LinkFlags _GLIB2Cflags)
26   PKGCONFIG(gmodule-2.0 _GMODULE2IncDir _GMODULE2inkDir _GMODULE2LinkFlags _GMODULE2Cflags)
27   SET(GDIR /opt/gnome/lib/glib-2.0/include)
28
29   FIND_PATH(GLIB2_glibconfig_INCLUDE_PATH glibconfig.h
30     ${_GLIB2IncDir}
31     /opt/gnome/lib64/glib-2.0/include
32     /opt/gnome/lib/glib-2.0/include
33     /usr/lib64/glib-2.0/include
34     /usr/lib/glib-2.0/include
35   )
36
37   FIND_PATH(GLIB2_glib_INCLUDE_PATH glib.h
38     ${_GLIB2IncDir}
39     /opt/gnome/include/glib-2.0
40     /usr/include/glib-2.0
41   )
42
43   FIND_LIBRARY( GLIB2_gmodule_LIBRARY
44     NAMES  gmodule-2.0
45     PATHS  ${_GMODULE2inkDir}
46            /usr/lib
47            /usr/local/lib
48            /usr/openwin/lib
49            /usr/X11R6/lib
50            /opt/gnome/lib
51   )
52
53   FIND_LIBRARY( GLIB2_glib_LIBRARY
54     NAMES  glib-2.0
55     PATHS  ${_GLIB2inkDir}
56            /usr/lib
57            /usr/local/lib
58            /usr/openwin/lib
59            /usr/X11R6/lib
60            /opt/gnome/lib
61   )
62
63   FIND_LIBRARY( GLIB2_gthread_LIBRARY
64     NAMES  gthread-2.0
65     PATHS  /usr/lib
66            /usr/local/lib
67            /usr/openwin/lib
68            /usr/X11R6/lib
69            /opt/gnome/lib
70   )
71
72   FIND_LIBRARY( GLIB2_gobject_LIBRARY
73     NAMES  gobject-2.0
74     PATHS 
75            /opt/gnome/lib
76   )
77
78   IF(GLIB2_glibconfig_INCLUDE_PATH)
79     IF(GLIB2_glib_INCLUDE_PATH)
80       IF(GLIB2_glib_LIBRARY)
81         
82         SET( GLIB2_FOUND TRUE )
83         SET( GLIB2_INCLUDE_DIR
84           ${GLIB2_glibconfig_INCLUDE_PATH}
85           ${GLIB2_glib_INCLUDE_PATH})
86         SET( GLIB2_LIBRARIES ${GLIB2_glib_LIBRARY} )
87     
88         IF(GLIB2_gmodule_LIBRARY)
89           SET(GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${GLIB2_gmodule_LIBRARY})
90         ENDIF(GLIB2_gmodule_LIBRARY)
91         IF(GLIB2_gthread_LIBRARY)
92           SET(GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${GLIB2_gthread_LIBRARY})
93         ENDIF(GLIB2_gthread_LIBRARY)
94
95       ELSE(GLIB2_glib_LIBRARY)
96         MESSAGE("Can not find glib lib")
97       ENDIF(GLIB2_glib_LIBRARY)
98     ELSE(GLIB2_glib_INCLUDE_PATH) 
99       MESSAGE("Can not find glib includes")
100     ENDIF(GLIB2_glib_INCLUDE_PATH) 
101   ELSE(GLIB2_glibconfig_INCLUDE_PATH)
102     MESSAGE("Can not find glibconfig")
103   ENDIF(GLIB2_glibconfig_INCLUDE_PATH)
104
105   if (GLIB2_FOUND)
106     if (NOT GLIB2_FIND_QUIETLY)
107       message(STATUS "Found GLIB: ${GLIB2_LIBRARIES}")
108     endif (NOT GLIB2_FIND_QUIETLY)
109   else (GLIB2_FOUND)
110     if (GLIB2_FIND_REQUIRED)
111       message(FATAL_ERROR "Could NOT find GLIB")
112     endif (GLIB2_FIND_REQUIRED)
113   endif (GLIB2_FOUND)
114
115
116   MARK_AS_ADVANCED(
117     GLIB2_glib_INCLUDE_PATH
118     GLIB2_glib_LIBRARY
119     GLIB2_glibconfig_INCLUDE_PATH
120     GLIB2_gmodule_LIBRARY
121     GLIB2_gthread_LIBRARY
122   )
123
124 ELSE(UNIX)
125   # MESSAGE("FindGLIB2 is working on UNIX/LINUX, only!")
126 ENDIF(UNIX)
127