1 |
# - Try to find GTK2
|
2 |
# Once done this will define
|
3 |
#
|
4 |
# GTK2_FOUND - System has Boost
|
5 |
# GTK2_INCLUDE_DIRS - GTK2 include directory
|
6 |
# GTK2_LIBRARIES - Link these to use GTK2
|
7 |
# GTK2_LIBRARY_DIRS - The path to where the GTK2 library files are.
|
8 |
# GTK2_DEFINITIONS - Compiler switches required for using GTK2
|
9 |
#
|
10 |
# Copyright (c) 2007 Andreas Schneider <mail@cynapses.org>
|
11 |
#
|
12 |
# Redistribution and use is allowed according to the terms of the New
|
13 |
# BSD license.
|
14 |
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
15 |
#
|
16 |
|
17 |
set(GTK2_DEBUG ON)
|
18 |
|
19 |
macro(GTK2_DEBUG_MESSAGE _message)
|
20 |
if (GTK2_DEBUG)
|
21 |
message(STATUS "(DEBUG) ${_message}")
|
22 |
endif (GTK2_DEBUG)
|
23 |
endmacro(GTK2_DEBUG_MESSAGE _message)
|
24 |
|
25 |
if (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)
|
26 |
# in cache already
|
27 |
set(GTK2_FOUND TRUE)
|
28 |
else (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)
|
29 |
|
30 |
# use pkg-config to get the directories and then use these values
|
31 |
# in the FIND_PATH() and FIND_LIBRARY() calls
|
32 |
include(UsePkgConfig)
|
33 |
|
34 |
pkgconfig(gtk+-2.0 _GTK2IncDir _GTK2LinkDir _GTK2LinkFlags _GTK2Cflags)
|
35 |
|
36 |
find_path(GTK2_GTK_INCLUDE_DIR
|
37 |
NAMES
|
38 |
gtk/gtk.h
|
39 |
PATHS
|
40 |
$ENV{GTK2_HOME}
|
41 |
${_GTK2IncDir}
|
42 |
${_GTK2IncDir}/gtk-2.0
|
43 |
/usr/include/gtk-2.0
|
44 |
/usr/local/include/gtk-2.0
|
45 |
/opt/include/gtk-2.0
|
46 |
/opt/gnome/include/gtk-2.0
|
47 |
/sw/include/gtk-2.0
|
48 |
)
|
49 |
gtk2_debug_message("GTK2_GTK_INCLUDE_DIR is ${GTK2_GTK_INCLUDE_DIR}")
|
50 |
|
51 |
# Some Linux distributions (e.g. Red Hat) have glibconfig.h
|
52 |
# and glib.h in different directories, so we need to look
|
53 |
# for both.
|
54 |
# - Atanas Georgiev <atanas@cs.columbia.edu>
|
55 |
pkgconfig(glib-2.0 _GLIB2IncDir _GLIB2LinkDir _GLIB2LinkFlags _GLIB2Cflags)
|
56 |
pkgconfig(gmodule-2.0 _GMODULE2IncDir _GMODULE2LinkDir _GMODULE2LinkFlags _GMODULE2Cflags)
|
57 |
|
58 |
find_path(GTK2_GLIBCONFIG_INCLUDE_DIR
|
59 |
NAMES
|
60 |
glibconfig.h
|
61 |
PATHS
|
62 |
${_GLIB2IncDir}
|
63 |
${_GMODULE2IncDir}
|
64 |
${_GMODULE2IncDir}/glib-2.0
|
65 |
/opt/gnome/lib64/glib-2.0/include
|
66 |
/opt/gnome/lib/glib-2.0/include
|
67 |
/opt/lib/glib-2.0/include
|
68 |
/usr/lib64/glib-2.0/include
|
69 |
/usr/lib/glib-2.0/include
|
70 |
/sw/lib/glib-2.0/include
|
71 |
)
|
72 |
gtk2_debug_message("GTK2_GLIBCONFIG_INCLUDE_DIR is ${GTK2_GLIBCONFIG_INCLUDE_DIR}")
|
73 |
|
74 |
find_path(GTK2_GLIB_INCLUDE_DIR
|
75 |
NAMES
|
76 |
glib.h
|
77 |
PATHS
|
78 |
${_GLIB2IncDir}
|
79 |
${_GLIB2IncDir}/glib-2.0
|
80 |
${_GMODULE2IncDir}
|
81 |
/opt/include/glib-2.0
|
82 |
/opt/gnome/include/glib-2.0
|
83 |
/usr/include/glib-2.0
|
84 |
/sw/include/glib-2.0
|
85 |
)
|
86 |
gtk2_debug_message("GTK2_GLIB_INCLUDE_DIR is ${GTK2_GLIB_INCLUDE_DIR}")
|
87 |
|
88 |
pkgconfig(gdk-2.0 _GDK2IncDir _GDK2LinkDir _GDK2LinkFlags _GDK2Cflags)
|
89 |
|
90 |
find_path(GTK2_GDK_INCLUDE_DIR
|
91 |
NAMES
|
92 |
gdkconfig.h
|
93 |
PATHS
|
94 |
${_GDK2IncDir}
|
95 |
${_GDK2IncDir}/gtk-2.0
|
96 |
/opt/gnome/lib/gtk-2.0/include
|
97 |
/opt/gnome/lib64/gtk-2.0/include
|
98 |
/opt/lib/gtk-2.0/include
|
99 |
/usr/lib/gtk-2.0/include
|
100 |
/usr/lib64/gtk-2.0/include
|
101 |
/sw/lib/gtk-2.0/include
|
102 |
)
|
103 |
gtk2_debug_message("GTK2_GDK_INCLUDE_DIR is ${GTK2_GDK_INCLUDE_DIR}")
|
104 |
|
105 |
find_path(GTK2_GTKGL_INCLUDE_DIR
|
106 |
NAMES
|
107 |
gtkgl/gtkglarea.h
|
108 |
PATHS
|
109 |
${_GLIB2IncDir}
|
110 |
/usr/include
|
111 |
/usr/local/include
|
112 |
/usr/openwin/share/include
|
113 |
/opt/gnome/include
|
114 |
/opt/include
|
115 |
/sw/include
|
116 |
)
|
117 |
gtk2_debug_message("GTK2_GTKGL_INCLUDE_DIR is ${GTK2_GTKGL_INCLUDE_DIR}")
|
118 |
|
119 |
pkgconfig(pango _PANGOIncDir _PANGOLinkDir _PANGOLinkFlags _PANGOCflags)
|
120 |
|
121 |
find_path(GTK2_PANGO_INCLUDE_DIR
|
122 |
NAMES
|
123 |
pango/pango.h
|
124 |
PATHS
|
125 |
${_PANGOIncDir}
|
126 |
${_PANGOIncDir}/pango-1.0/
|
127 |
/usr/include/pango-1.0
|
128 |
/opt/gnome/include/pango-1.0
|
129 |
/opt/include/pango-1.0
|
130 |
/sw/include/pango-1.0
|
131 |
)
|
132 |
gtk2_debug_message("GTK2_PANGO_INCLUDE_DIR is ${GTK2_PANGO_INCLUDE_DIR}")
|
133 |
|
134 |
pkgconfig(cairo _CAIROIncDir _CAIROLinkDir _CAIROLinkFlags _CAIROCflags)
|
135 |
|
136 |
find_path(GTK2_CAIRO_INCLUDE_DIR
|
137 |
NAMES
|
138 |
cairo.h
|
139 |
PATHS
|
140 |
${_CAIROIncDir}
|
141 |
${_CAIROIncDir}/cairo
|
142 |
/opt/gnome/include/cairo
|
143 |
/usr/include
|
144 |
/usr/include/cairo
|
145 |
/opt/include
|
146 |
/opt/include/cairo
|
147 |
/sw/include
|
148 |
/sw/include/cairo
|
149 |
)
|
150 |
gtk2_debug_message("GTK2_CAIRO_INCLUDE_DIR is ${GTK2_CAIRO_INCLUDE_DIR}")
|
151 |
|
152 |
pkgconfig(gdk-pixbuf-2.0 _GDKPIXBUFIncDir _GDKPIXBUFLinkDir _GDKPIXBUFLinkFlags _GDKPIXBUFCflags)
|
153 |
|
154 |
find_path(GTK2_GDKPIXBUF_INCLUDE_DIR
|
155 |
NAMES
|
156 |
gdk-pixbuf/gdk-pixbuf.h
|
157 |
PATHS
|
158 |
${_GDKPIXBUFIncDir}
|
159 |
${_GDKPIXBUFIncDir}/gdk-pixbuf-2.0
|
160 |
/opt/gnome/include/cairo
|
161 |
/usr/include
|
162 |
/usr/include/cairo
|
163 |
/opt/include
|
164 |
/opt/include/cairo
|
165 |
/sw/include
|
166 |
/sw/include/cairo
|
167 |
/sw/include/gdk-pixbuf-2.0
|
168 |
)
|
169 |
gtk2_debug_message("GTK2_CAIRO_INCLUDE_DIR is ${GTK2_CAIRO_INCLUDE_DIR}")
|
170 |
|
171 |
pkgconfig(atk _ATKIncDir _ATKLinkDir _ATKLinkFlags _ATKCflags)
|
172 |
|
173 |
find_path(GTK2_ATK_INCLUDE_DIR
|
174 |
NAMES
|
175 |
atk/atk.h
|
176 |
PATHS
|
177 |
${_ATKIncDir}
|
178 |
${_ATKIncDir}/atk-1.0
|
179 |
/opt/gnome/include/atk-1.0
|
180 |
/usr/include/atk-1.0
|
181 |
/opt/include/atk-1.0
|
182 |
/sw/include/atk-1.0
|
183 |
)
|
184 |
gtk2_debug_message("GTK2_ATK_INCLUDE_DIR is ${GTK2_ATK_INCLUDE_DIR}")
|
185 |
if (UNIX)
|
186 |
find_library(GTK2_GTK_LIBRARY
|
187 |
NAMES
|
188 |
gtk-x11-2.0
|
189 |
PATHS
|
190 |
${_GTK2LinkDir}
|
191 |
/usr/lib
|
192 |
/usr/local/lib
|
193 |
/usr/openwin/lib
|
194 |
/usr/X11R6/lib
|
195 |
/opt/gnome/lib
|
196 |
/opt/lib
|
197 |
/sw/lib
|
198 |
)
|
199 |
gtk2_debug_message("GTK2_GTK_LIBRARY is ${GTK2_GTK_LIBRARY}")
|
200 |
|
201 |
find_library(GTK2_GDK_LIBRARY
|
202 |
NAMES
|
203 |
gdk-x11-2.0
|
204 |
PATHS
|
205 |
${_GDK2LinkDir}
|
206 |
/usr/lib
|
207 |
/usr/local/lib
|
208 |
/usr/openwin/lib
|
209 |
/usr/X11R6/lib
|
210 |
/opt/gnome/lib
|
211 |
/opt/lib
|
212 |
/sw/lib
|
213 |
)
|
214 |
gtk2_debug_message("GTK2_GDK_LIBRARY is ${GTK2_GDK_LIBRARY}")
|
215 |
endif(UNIX)
|
216 |
if (WIN32)
|
217 |
|
218 |
find_library(GTK2_GTK_LIBRARY
|
219 |
NAMES
|
220 |
gtk-win32-2.0
|
221 |
PATHS
|
222 |
${_GTK2LinkDir}
|
223 |
/usr/lib
|
224 |
/usr/local/lib
|
225 |
/usr/openwin/lib
|
226 |
/usr/X11R6/lib
|
227 |
/opt/gnome/lib
|
228 |
/opt/lib
|
229 |
/sw/lib
|
230 |
)
|
231 |
gtk2_debug_message("GTK2_GTK_LIBRARY is ${GTK2_GTK_LIBRARY}")
|
232 |
|
233 |
find_library(GTK2_GDK_LIBRARY
|
234 |
NAMES
|
235 |
gdk-win32-2.0
|
236 |
PATHS
|
237 |
${_GDK2LinkDir}
|
238 |
/usr/lib
|
239 |
/usr/local/lib
|
240 |
/usr/openwin/lib
|
241 |
/usr/X11R6/lib
|
242 |
/opt/gnome/lib
|
243 |
/opt/lib
|
244 |
/sw/lib
|
245 |
)
|
246 |
endif (WIN32)
|
247 |
find_library(GTK2_GDK_PIXBUF_LIBRARY
|
248 |
NAMES
|
249 |
gdk_pixbuf-2.0
|
250 |
PATHS
|
251 |
${_GDK2LinkDir}
|
252 |
/usr/lib
|
253 |
/usr/local/lib
|
254 |
/usr/openwin/lib
|
255 |
/usr/X11R6/lib
|
256 |
/opt/gnome/lib
|
257 |
/opt/lib
|
258 |
/sw/lib
|
259 |
)
|
260 |
gtk2_debug_message("GTK2_GDK_PIXBUF_LIBRARY is ${GTK2_GDK_PIXBUF_LIBRARY}")
|
261 |
|
262 |
find_library(GTK2_GMODULE_LIBRARY
|
263 |
NAMES
|
264 |
gmodule-2.0
|
265 |
PATHS
|
266 |
${_GMODULE2LinkDir}
|
267 |
/usr/lib
|
268 |
/usr/local/lib
|
269 |
/usr/openwin/lib
|
270 |
/usr/X11R6/lib
|
271 |
/opt/gnome/lib
|
272 |
/opt/lib
|
273 |
/sw/lib
|
274 |
)
|
275 |
gtk2_debug_message("GTK2_GMODULE_LIBRARY is ${GTK2_GMODULE_LIBRARY}")
|
276 |
|
277 |
find_library(GTK2_GTHREAD_LIBRARY
|
278 |
NAMES
|
279 |
gthread-2.0
|
280 |
PATHS
|
281 |
${_GTK2LinkDir}
|
282 |
/usr/lib
|
283 |
/usr/local/lib
|
284 |
/usr/openwin/lib
|
285 |
/usr/X11R6/lib
|
286 |
/opt/gnome/lib
|
287 |
/opt/lib
|
288 |
/sw/lib
|
289 |
)
|
290 |
gtk2_debug_message("GTK2_GTHREAD_LIBRARY is ${GTK2_GTHREAD_LIBRARY}")
|
291 |
|
292 |
find_library(GTK2_GOBJECT_LIBRARY
|
293 |
NAMES
|
294 |
gobject-2.0
|
295 |
PATHS
|
296 |
${_GTK2LinkDir}
|
297 |
/usr/lib
|
298 |
/usr/local/lib
|
299 |
/usr/openwin/lib
|
300 |
/usr/X11R6/lib
|
301 |
/opt/gnome/lib
|
302 |
/opt/lib
|
303 |
/sw/lib
|
304 |
)
|
305 |
gtk2_debug_message("GTK2_GOBJECT_LIBRARY is ${GTK2_GOBJECT_LIBRARY}")
|
306 |
|
307 |
find_library(GTK2_GLIB_LIBRARY
|
308 |
NAMES
|
309 |
glib-2.0
|
310 |
PATHS
|
311 |
${_GLIB2LinkDir}
|
312 |
/usr/lib
|
313 |
/usr/local/lib
|
314 |
/usr/openwin/lib
|
315 |
/usr/X11R6/lib
|
316 |
/opt/gnome/lib
|
317 |
/opt/lib
|
318 |
/sw/lib
|
319 |
)
|
320 |
gtk2_debug_message("GTK2_GLIB_LIBRARY is ${GTK2_GLIB_LIBRARY}")
|
321 |
|
322 |
find_library(GTK2_GTKGL_LIBRARY
|
323 |
NAMES
|
324 |
gtkgl
|
325 |
PATHS
|
326 |
${_GTK2LinkDir}
|
327 |
/usr/lib
|
328 |
/usr/local/lib
|
329 |
/usr/openwin/lib
|
330 |
/usr/X11R6/lib
|
331 |
/opt/gnome/lib
|
332 |
/opt/lib
|
333 |
/sw/lib
|
334 |
)
|
335 |
gtk2_debug_message("GTK2_GTKGL_LIBRARY is ${GTK2_GTKGL_LIBRARY}")
|
336 |
|
337 |
find_library(GTK2_PANGO_LIBRARY
|
338 |
NAMES
|
339 |
pango-1.0
|
340 |
PATHS
|
341 |
${_PANGOLinkDir}
|
342 |
/usr/lib
|
343 |
/usr/local/lib
|
344 |
/usr/openwin/lib
|
345 |
/usr/X11R6/lib
|
346 |
/opt/gnome/lib
|
347 |
/opt/lib
|
348 |
/sw/lib
|
349 |
)
|
350 |
gtk2_debug_message("GTK2_PANGO_LIBRARY is ${GTK2_PANGO_LIBRARY}")
|
351 |
|
352 |
find_library(GTK2_CAIRO_LIBRARY
|
353 |
NAMES
|
354 |
pangocairo-1.0
|
355 |
PATHS
|
356 |
${_CAIROLinkDir}
|
357 |
/usr/lib
|
358 |
/usr/local/lib
|
359 |
/usr/openwin/lib
|
360 |
/usr/X11R6/lib
|
361 |
/opt/gnome/lib
|
362 |
/opt/lib
|
363 |
/sw/lib
|
364 |
)
|
365 |
gtk2_debug_message("GTK2_PANGO_LIBRARY is ${GTK2_CAIRO_LIBRARY}")
|
366 |
|
367 |
find_library(GTK2_ATK_LIBRARY
|
368 |
NAMES
|
369 |
atk-1.0
|
370 |
PATHS
|
371 |
${_ATKinkDir}
|
372 |
/usr/lib
|
373 |
/usr/local/lib
|
374 |
/usr/openwin/lib
|
375 |
/usr/X11R6/lib
|
376 |
/opt/gnome/lib
|
377 |
/opt/lib
|
378 |
/sw/lib
|
379 |
)
|
380 |
gtk2_debug_message("GTK2_ATK_LIBRARY is ${GTK2_ATK_LIBRARY}")
|
381 |
|
382 |
set(GTK2_INCLUDE_DIRS
|
383 |
${GTK2_GTK_INCLUDE_DIR}
|
384 |
${GTK2_GLIBCONFIG_INCLUDE_DIR}
|
385 |
${GTK2_GLIB_INCLUDE_DIR}
|
386 |
${GTK2_GDK_INCLUDE_DIR}
|
387 |
${GTK2_PANGO_INCLUDE_DIR}
|
388 |
${GTK2_CAIRO_INCLUDE_DIR}
|
389 |
${GTK2_ATK_INCLUDE_DIR}
|
390 |
)
|
391 |
|
392 |
if(GTK2_GDKPIXBUF_INCLUDE_DIR)
|
393 |
set(GTK2_INCLUDE_DIRS ${GTK2_INCLUDE_DIRS} ${GTK2_GDKPIXBUF_INCLUDE_DIR})
|
394 |
endif(GTK2_GDKPIXBUF_INCLUDE_DIR)
|
395 |
|
396 |
if (GTK2_GTK_LIBRARY AND GTK2_GTK_INCLUDE_DIR)
|
397 |
if (GTK2_GDK_LIBRARY AND GTK2_GDK_PIXBUF_LIBRARY AND GTK2_GDK_INCLUDE_DIR)
|
398 |
if (GTK2_GMODULE_LIBRARY)
|
399 |
if (GTK2_GTHREAD_LIBRARY)
|
400 |
if (GTK2_GOBJECT_LIBRARY)
|
401 |
if (GTK2_PANGO_LIBRARY AND GTK2_PANGO_INCLUDE_DIR)
|
402 |
if (GTK2_CAIRO_LIBRARY AND GTK2_CAIRO_INCLUDE_DIR)
|
403 |
if (GTK2_ATK_LIBRARY AND GTK2_ATK_INCLUDE_DIR)
|
404 |
|
405 |
# set GTK2 libraries
|
406 |
set (GTK2_LIBRARIES
|
407 |
${GTK2_GTK_LIBRARY}
|
408 |
${GTK2_GDK_LIBRARY}
|
409 |
${GTK2_GDK_PIXBUF_LIBRARY}
|
410 |
${GTK2_GMODULE_LIBRARY}
|
411 |
${GTK2_GTHREAD_LIBRARY}
|
412 |
${GTK2_GOBJECT_LIBRARY}
|
413 |
${GTK2_PANGO_LIBRARY}
|
414 |
${GTK2_CAIRO_LIBRARY}
|
415 |
${GTK2_ATK_LIBRARY}
|
416 |
)
|
417 |
|
418 |
# check for gtkgl support
|
419 |
if (GTK2_GTKGL_LIBRARY AND GTK2_GTKGL_INCLUDE_DIR)
|
420 |
set(GTK2_GTKGL_FOUND TRUE)
|
421 |
|
422 |
# set(GTK2_INCLUDE_DIRS
|
423 |
# ${GTK2_INCLUDE_DIRS}
|
424 |
# ${GTK2_GTKGL_INCLUDE_DIR}
|
425 |
# )
|
426 |
|
427 |
# set(GTK2_LIBRARIES
|
428 |
# ${GTK2_LIBRARIES}
|
429 |
# ${GTK2_GTKGL_LIBRARY}
|
430 |
# )
|
431 |
endif (GTK2_GTKGL_LIBRARY AND GTK2_GTKGL_INCLUDE_DIR)
|
432 |
|
433 |
else (GTK2_ATK_LIBRARY AND GTK2_ATK_INCLUDE_DIR)
|
434 |
endif (GTK2_ATK_LIBRARY AND GTK2_ATK_INCLUDE_DIR)
|
435 |
else (GTK2_CAIRO_LIBRARY AND GTK2_CAIRO_INCLUDE_DIR)
|
436 |
endif (GTK2_CAIRO_LIBRARY AND GTK2_CAIRO_INCLUDE_DIR)
|
437 |
else (GTK2_PANGO_LIBRARY AND GTK2_PANGO_INCLUDE_DIR)
|
438 |
endif (GTK2_PANGO_LIBRARY AND GTK2_PANGO_INCLUDE_DIR)
|
439 |
else (GTK2_GOBJECT_LIBRARY)
|
440 |
endif (GTK2_GOBJECT_LIBRARY)
|
441 |
else (GTK2_GTHREAD_LIBRARY)
|
442 |
endif (GTK2_GTHREAD_LIBRARY)
|
443 |
else (GTK2_GMODULE_LIBRARY)
|
444 |
endif (GTK2_GMODULE_LIBRARY)
|
445 |
else (GTK2_GDK_LIBRARY AND GTK2_GDK_PIXBUF_LIBRARY AND GTK2_GDK_INCLUDE_DIR)
|
446 |
endif (GTK2_GDK_LIBRARY AND GTK2_GDK_PIXBUF_LIBRARY AND GTK2_GDK_INCLUDE_DIR)
|
447 |
else (GTK2_GTK_LIBRARY AND GTK2_GTK_INCLUDE_DIR)
|
448 |
endif (GTK2_GTK_LIBRARY AND GTK2_GTK_INCLUDE_DIR)
|
449 |
|
450 |
|
451 |
if (GTK2_INCLUDE_DIRS AND GTK2_LIBRARIES)
|
452 |
set(GTK2_FOUND TRUE)
|
453 |
endif (GTK2_INCLUDE_DIRS AND GTK2_LIBRARIES)
|
454 |
|
455 |
if (GTK2_FOUND)
|
456 |
if (NOT GTK2_FIND_QUIETLY)
|
457 |
message(STATUS "Found GTK2: ${GTK2_LIBRARIES}")
|
458 |
endif (NOT GTK2_FIND_QUIETLY)
|
459 |
else (GTK2_FOUND)
|
460 |
if (GTK2_FIND_REQUIRED)
|
461 |
message(FATAL_ERROR "Could not find GTK2")
|
462 |
endif (GTK2_FIND_REQUIRED)
|
463 |
endif (GTK2_FOUND)
|
464 |
|
465 |
# show the GTK2_INCLUDE_DIRS and GTK2_LIBRARIES variables only in the advanced view
|
466 |
mark_as_advanced(GTK2_INCLUDE_DIRS GTK2_LIBRARIES)
|
467 |
|
468 |
|
469 |
endif (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)
|
470 |
|