]> Creatis software - bbtk.git/blob - kernel/cmake/BBTKFindGTK2.cmake
Modified GTK2 find mecanism for cmake > 2.4
[bbtk.git] / kernel / cmake / BBTKFindGTK2.cmake
1
2 # for CMake 2.6 
3 IF(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} GREATER 4)
4   # technically those packages are not required 
5   # since one can still use the Motif/X11 version and not the gtk one:
6   FIND_PACKAGE(PkgConfig)
7   pkg_check_modules (GTK2 gtk+-2.0)
8   #MESSAGE("${GTK2_INCLUDE_DIRS}")
9
10 # older CMake 
11 ELSE(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} GREATER 4)
12
13 IF (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)
14   # in cache already
15   SET(GTK2_FOUND TRUE)
16 ELSE (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)
17   IF(UNIX)
18     # use pkg-config to get the directories and then use these values
19     # in the FIND_PATH() and FIND_LIBRARY() calls
20     INCLUDE(UsePkgConfig)
21
22     PKGCONFIG(gtk-2.0 _GTK22IncDir _GTK22LinkDir _GTK22LinkFlags _GTK22Cflags)
23
24     FIND_PATH(GTK2_GTK_INCLUDE_PATH gtk/gtk.h
25       $ENV{GTK2_HOME}
26       ${_GTK22IncDir}
27       /usr/include/gtk-2.0
28       /usr/local/include/gtk-2.0
29       /opt/include/gtk-2.0
30       /opt/gnome/include/gtk-2.0
31       /sw/include/gtk-2.0
32     )
33
34     # Some Linux distributions (e.g. Red Hat) have glibconfig.h
35     # and glib.h in different directories, so we need to look
36     # for both.
37     #  - Atanas Georgiev <atanas@cs.columbia.edu>
38     PKGCONFIG(glib-2.0 _GLIB2IncDir _GLIB2inkDir _GLIB2LinkFlags _GLIB2Cflags)
39     PKGCONFIG(gmodule-2.0 _GMODULE2IncDir _GMODULE2inkDir _GMODULE2LinkFlags _GMODULE2Cflags)
40     SET(GDIR /opt/gnome/lib/glib-2.0/include)
41
42     FIND_PATH(GTK2_GLIBCONFIG_INCLUDE_PATH glibconfig.h
43       ${_GLIB2IncDir}
44       /opt/gnome/lib64/glib-2.0/include
45       /opt/gnome/lib/glib-2.0/include
46       /opt/lib/glib-2.0/include
47       /usr/lib64/glib-2.0/include
48       /usr/lib/glib-2.0/include
49       /sw/lib/glib-2.0/include
50     )
51     #MESSAGE(STATUS "DEBUG: GTK2_GLIBCONFIG_INCLUDE_PATH = ${GTK2_GLIBCONFIG_INCLUDE_PATH}")
52
53     FIND_PATH(GTK2_GLIB_INCLUDE_PATH glib.h
54       ${_GLIB2IncDir}
55       /opt/include/glib-2.0
56       /opt/gnome/include/glib-2.0
57       /usr/include/glib-2.0
58       /sw/include/glib-2.0
59     )
60     #MESSAGE(STATUS "DEBUG: GTK2_GLIBCONFIG_INCLUDE_PATH = ${GTK2_GLIBCONFIG_INCLUDE_PATH}")
61
62     FIND_PATH(GTK2_GTKGL_INCLUDE_PATH gtkgl/gtkglarea.h
63       ${_GLIB2IncDir}
64       /usr/include
65       /usr/local/include
66       /usr/openwin/share/include
67       /opt/gnome/include
68       /opt/include
69       /sw/include
70     )
71
72     PKGCONFIG(pango _PANGOIncDir _PANGOinkDir _PANGOLinkFlags _PANGOCflags)
73
74     FIND_PATH(GTK2_PANGO_INCLUDE_PATH pango/pango.h
75       ${_PANGOIncDir}
76       /opt/gnome/include/pango-1.0
77       /opt/include/pango-1.0
78       /usr/include/pango-1.0
79       /sw/include/pango-1.0
80     )
81
82     PKGCONFIG(gdk-2.0 _GDK2IncDir _GDK2inkDir _GDK2LinkFlags _GDK2Cflags)
83
84     FIND_PATH(GTK2_GDKCONFIG_INCLUDE_PATH gdkconfig.h
85       ${_GDK2IncDir}
86       /opt/gnome/lib/gtk-2.0/include
87       /opt/gnome/lib64/gtk-2.0/include
88       /opt/lib/gtk-2.0/include
89       /usr/lib/gtk-2.0/include
90       /usr/lib64/gtk-2.0/include
91       /sw/lib/gtk-2.0/include
92     )
93
94     # Dave:
95     FIND_PATH(GTK2_GDK_INCLUDE_PATH gdk.h
96       ${_GDK2IncDir}
97       /usr/include/gtk-2.0
98       /usr/include/gtk-2.0/gdk
99     )
100     #MESSAGE(STATUS "DEBUG: GTK2_GLIBCONFIG_INCLUDE_PATH = ${GTK2_GLIBCONFIG_INCLUDE_PATH}")
101
102     PKGCONFIG(cairo _CAIROIncDir _CAIROinkDir _CAIROLinkFlags _CAIROCflags)
103
104     FIND_PATH(GTK2_CAIRO_INCLUDE_PATH cairo.h
105       ${_CAIROIncDir}
106       /opt/gnome/include/cairo
107       /usr/include
108       /usr/include/cairo
109       /opt/include
110       /opt/include/cairo
111       /sw/include
112       /sw/include/cairo
113     )
114     #MESSAGE(STATUS "DEBUG: GTK2_CAIRO_INCLUDE_PATH = ${GTK2_CAIRO_INCLUDE_PATH}")
115
116     PKGCONFIG(atk _ATKIncDir _ATKinkDir _ATKLinkFlags _ATKCflags)
117
118     FIND_PATH(GTK2_ATK_INCLUDE_PATH atk/atk.h
119       ${_ATKIncDir}
120       /opt/gnome/include/atk-1.0
121       /usr/include/atk-1.0
122       /opt/include/atk-1.0
123       /sw/include/atk-1.0
124     )
125     #MESSAGE(STATUS "DEBUG: GTK2_ATK_INCLUDE_PATH = ${GTK2_ATK_INCLUDE_PATH}")
126
127     FIND_LIBRARY(GTK2_GTKGL_LIBRARY
128       NAMES
129         gtkgl
130       PATHS
131         ${_GTK22IncDir}
132         /usr/lib
133         /usr/local/lib
134         /usr/openwin/lib
135         /usr/X11R6/lib
136         /opt/gnome/lib
137         /opt/lib
138         /sw/lib
139     )
140
141     FIND_LIBRARY(GTK2_GTK_LIBRARY
142       NAMES
143         gtk-x11-2.0
144       PATHS
145         ${_GTK22LinkDir}
146         /usr/lib
147         /usr/local/lib
148         /usr/openwin/lib
149         /usr/X11R6/lib
150         /opt/gnome/lib
151         /opt/lib
152         /sw/lib
153     )
154
155     FIND_LIBRARY(GTK2_GDK_LIBRARY
156       NAMES
157         gdk-x11-2.0
158       PATHS
159         ${_GDK2LinkDir}
160         /usr/lib
161         /usr/local/lib
162         /usr/openwin/lib
163         /usr/X11R6/lib
164         /opt/gnome/lib
165         /opt/lib
166         /sw/lib
167     )
168
169     FIND_LIBRARY(GTK2_GMODULE_LIBRARY
170       NAMES
171         gmodule-2.0
172       PATHS
173         ${_GMODULE2inkDir}
174         /usr/lib
175         /usr/local/lib
176         /usr/openwin/lib
177         /usr/X11R6/lib
178         /opt/gnome/lib
179         /opt/lib
180         /sw/lib
181     )
182
183     FIND_LIBRARY(GTK2_GLIB_LIBRARY
184       NAMES
185         glib-2.0
186       PATHS
187         ${_GLIB2inkDir}
188         /usr/lib
189         /usr/local/lib
190         /usr/openwin/lib
191         /usr/X11R6/lib
192         /opt/gnome/lib
193         /opt/lib
194         /sw/lib
195     )
196
197     FIND_LIBRARY(GTK2_Xi_LIBRARY 
198       NAMES
199         Xi
200       PATHS 
201         /usr/lib
202         /usr/local/lib
203         /usr/openwin/lib
204         /usr/X11R6/lib
205         /opt/gnome/lib
206         /opt/lib
207         /sw/lib
208     )
209
210     FIND_LIBRARY(GTK2_GTHREAD_LIBRARY
211       NAMES
212         gthread-2.0
213       PATHS
214         /usr/lib
215         /usr/local/lib
216         /usr/openwin/lib
217         /usr/X11R6/lib
218         /opt/gnome/lib
219         /opt/lib
220         /sw/lib
221     )
222
223
224     FIND_LIBRARY(GTK2_GOBJECT_LIBRARY
225       NAMES
226         gobject-2.0
227       PATHS
228         /usr/lib
229         /usr/local/lib
230         /usr/openwin/lib
231         /usr/X11R6/lib
232         /opt/gnome/lib
233         /opt/lib
234         /sw/lib
235     )
236
237     IF(GTK2_GTK_INCLUDE_PATH)
238       IF(GTK2_GLIBCONFIG_INCLUDE_PATH)
239         IF(GTK2_GLIB_INCLUDE_PATH)
240           IF(GTK2_GTK_LIBRARY)
241             IF(GTK2_GLIB_LIBRARY)
242               IF(GTK2_PANGO_INCLUDE_PATH)
243                 IF(GTK2_ATK_INCLUDE_PATH)
244                   IF(GTK2_CAIRO_INCLUDE_PATH)
245                     # Assume that if gtk and glib were found, the other
246                     # supporting libraries have also been found.
247
248                     SET(GTK2_FOUND TRUE)
249
250                     SET(GTK2_INCLUDE_DIRS
251                       ${GTK2_GTK_INCLUDE_PATH}
252                       ${GTK2_GLIBCONFIG_INCLUDE_PATH}
253                       ${GTK2_GLIB_INCLUDE_PATH}
254                       ${GTK2_PANGO_INCLUDE_PATH}
255                       ${GTK2_GDKCONFIG_INCLUDE_PATH}
256                       # Dave:
257                       ${GTK2_GDK_INCLUDE_PATH}
258                       ${GTK2_ATK_INCLUDE_PATH}
259                       ${GTK2_CAIRO_INCLUDE_PATH}
260                     )
261
262                     SET(GTK2_LIBRARIES
263                       ${GTK2_GTK_LIBRARY}
264                       ${GTK2_GDK_LIBRARY}
265                       ${GTK2_GLIB_LIBRARY}
266                     )
267                     #${GTK2_GOBJECT_LIBRARY})
268
269                     IF(GTK2_GMODULE_LIBRARY)
270                       SET(GTK2_LIBRARIES
271                         ${GTK2_LIBRARIES}
272                         ${GTK2_GMODULE_LIBRARY}
273                       )
274                     ENDIF(GTK2_GMODULE_LIBRARY)
275
276                     IF(GTK2_GTHREAD_LIBRARY)
277                       SET(GTK2_LIBRARIES
278                         ${GTK2_LIBRARIES}
279                         ${GTK2_GTHREAD_LIBRARY}
280                       )
281                     SET(GTK2_LIBRARIES ${GTK2_LIBRARIES})
282                     ENDIF(GTK2_GTHREAD_LIBRARY)
283                   ELSE(GTK2_CAIRO_INCLUDE_PATH)
284                     MESSAGE(STATUS "Can not find cairo")
285                   ENDIF(GTK2_CAIRO_INCLUDE_PATH)
286                 ELSE(GTK2_ATK_INCLUDE_PATH)
287                   MESSAGE(STATUS "Can not find atk")
288                 ENDIF(GTK2_ATK_INCLUDE_PATH)
289               ELSE(GTK2_PANGO_INCLUDE_PATH)
290                 MESSAGE(STATUS "Can not find pango includes")
291               ENDIF(GTK2_PANGO_INCLUDE_PATH)
292             ELSE(GTK2_GLIB_LIBRARY)
293               MESSAGE(STATUS "Can not find glib lib")
294             ENDIF(GTK2_GLIB_LIBRARY)
295           ELSE(GTK2_GTK_LIBRARY)
296             MESSAGE(STATUS "Can not find gtk lib")
297           ENDIF(GTK2_GTK_LIBRARY)
298         ELSE(GTK2_GLIB_INCLUDE_PATH)
299           MESSAGE(STATUS "Can not find glib includes")
300         ENDIF(GTK2_GLIB_INCLUDE_PATH)
301       ELSE(GTK2_GLIBCONFIG_INCLUDE_PATH)
302         MESSAGE(STATUS "Can not find glibconfig")
303       ENDIF(GTK2_GLIBCONFIG_INCLUDE_PATH)
304     ELSE (GTK2_GTK_INCLUDE_PATH)
305       MESSAGE(STATUS "Can not find gtk includes")
306     ENDIF (GTK2_GTK_INCLUDE_PATH)
307
308     IF (GTK2_FOUND)
309       IF (NOT GTK2_FIND_QUIETLY)
310         MESSAGE(STATUS "Looking for gtk2... - found ${GTK2_LIBRARIES}")
311       ENDIF (NOT GTK2_FIND_QUIETLY)
312     ELSE (GTK2_FOUND)
313       IF (GTK2_FIND_REQUIRED)
314         MESSAGE(SEND_ERROR "Could NOT find GTK2")
315       ENDIF (GTK2_FIND_REQUIRED)
316     ENDIF (GTK2_FOUND)
317
318     MARK_AS_ADVANCED(
319       GTK2_GDK_LIBRARY
320       GTK2_GLIB_INCLUDE_PATH
321       GTK2_GLIB_LIBRARY
322       GTK2_GLIBCONFIG_INCLUDE_PATH
323       GTK2_GMODULE_LIBRARY
324       GTK2_GTHREAD_LIBRARY
325       GTK2_Xi_LIBRARY
326       GTK2_GTK_INCLUDE_PATH
327       GTK2_GTK_LIBRARY
328       GTK2_GTKGL_INCLUDE_PATH
329       GTK2_GTKGL_LIBRARY
330       GTK2_ATK_INCLUDE_PATH
331       GTK2_GDKCONFIG_INCLUDE_PATH
332       # Dave:
333       GTK2_GDK_INCLUDE_PATH
334       #GTK2_GOBJECT_LIBRARY
335       GTK2_PANGO_INCLUDE_PATH
336       # LG :
337       GTK2_CAIRO_INCLUDE_PATH
338       GTK2_GOBJECT_LIBRARY
339     )
340   ENDIF(UNIX)
341 ENDIF (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)
342
343 ENDIF(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} GREATER 4)