Code

Cmake: added windows path to find modules.
[inkscape.git] / CMakeScripts / FindGTK2.cmake
1 #
2 # try to find GTK2 (and glib) and GTK2GLArea
3 #
4 # GTK2_INCLUDE_DIRS  - Directories to include to use GTK2
5 # GTK2_LIBRARIES     - Files to link against to use GTK2
6 # GTK2_FOUND         - If false, don't try to use GTK2
7 # GTK2_GL_FOUND      - If false, don't try to use GTK2's GL features
8 #
9 ###################################################################
10 #
11 #  Copyright (c) 2004 Jan Woetzel
12 #  Copyright (c) 2006 Andreas Schneider <mail@cynapses.org>
13 #
14 # This program is free software; you can redistribute it and/or
15 # modify it under the terms of the GNU General Public License
16 # as published by the Free Software Foundation; either version 2
17 # of the License, or (at your option) any later version.
18 #
19 # This program is distributed in the hope that it will be useful,
20 # but WITHOUT ANY WARRANTY; without even the implied warranty of
21 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22 # GNU General Public License for more details.
23 #
24 # You should have received a copy of the GNU General Public License
25 # along with this program; if not, write to the Free Software
26 # Foundation, Inc., 51 Franklin Street, Fifth Floor,
27 # Boston, MA  02110-1301, USA.
28 #
29 ###################################################################
30 #
31 #  Copyright (c) 2004 Jan Woetzel
32 #  Copyright (c) 2006 Andreas Schneider <mail@cynapses.org>
33 #  All rights reserved.
34 #
35 # Redistribution and use in source and binary forms, with or without
36 # modification, are permitted provided that the following conditions
37 # are met:
38 #
39 # * Redistributions of source code must retain the above copyright
40 #   notice, this list of conditions and the following disclaimer.
41 #
42 # * Redistributions in binary form must reproduce the above copyright
43 #   notice, this list of conditions and the following disclaimer in
44 #   the documentation and/or other materials provided with the
45 #   distribution.
46 #
47 # * Neither the name of the <ORGANIZATION> nor the names of its
48 #   contributors may be used to endorse or promote products derived
49 #   from this software without specific prior written permission.
50 #
51 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
52 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
53 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
54 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
55 # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
56 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
57 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
58 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
59 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
60 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
61 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
62 # POSSIBILITY OF SUCH DAMAGE.
63 #
65 IF (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)
66   # in cache already
67   SET(GTK2_FOUND TRUE)
68 ELSE (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)
70     # use pkg-config to get the directories and then use these values
71     # in the FIND_PATH() and FIND_LIBRARY() calls
72     if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
73       include(UsePkgConfig)
74     else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
75       find_package(PkgConfig)
76     endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
77     INCLUDE(UsePkgConfig)
79     if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
80       pkgconfig(gtk+-2.0 _GTK2_INCLUDEDIR _GTK2_LIBDIR _GTK2_LDFLAGS _GTK2_CFLAGS)
81     else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
82       if (PKG_CONFIG_FOUND)
83         pkg_check_modules(_GTK2 gtk+-2.0)
84       endif (PKG_CONFIG_FOUND)
85     endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
87     FIND_PATH(GTK2_GTK_INCLUDE_PATH gtk/gtk.h
88       $ENV{GTK2_HOME}
89       ${_GTK2_INCLUDEDIR}
90       /usr/include/gtk-2.0
91       /usr/local/include/gtk-2.0
92       /opt/gnome/include/gtk-2.0
93       $ENV{DEVLIBS_PATH}//include//
94     )
96     # Some Linux distributions (e.g. Red Hat) have glibconfig.h
97     # and glib.h in different directories, so we need to look
98     # for both.
99     #  - Atanas Georgiev <atanas@cs.columbia.edu>
100     if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
101       pkgconfig(glib-2.0 _GLIB2_INCLUDEDIR _GLIB2inkDir _GLIB2_LDFLAGS _GLIB2_CFLAGS)
102       pkgconfig(gmodule-2.0 _GMODULE2_INCLUDEDIR _GMODULE2inkDir _GMODULE2_LDFLAGS _GMODULE2_CFLAGS)
103     else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
104       if (PKG_CONFIG_FOUND)
105         pkg_check_modules(_GLIB2 glib-2.0)
106         pkg_check_modules(_GMODULE2 gmodule-2.0)
107       endif (PKG_CONFIG_FOUND)
108     endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
110     SET(GDIR /opt/gnome/lib/glib-2.0/include)
111     FIND_PATH(GTK2_GLIBCONFIG_INCLUDE_PATH glibconfig.h
112       ${_GLIB2_INCLUDEDIR}
113       /opt/gnome/lib64/glib-2.0/include
114       /opt/gnome/lib/glib-2.0/include
115       /usr/lib64/glib-2.0/include
116       /usr/lib/glib-2.0/include
117       $ENV{DEVLIBS_PATH}//include//
118     )
119     #MESSAGE(STATUS "DEBUG: GTK2_GLIBCONFIG_INCLUDE_PATH = ${GTK2_GLIBCONFIG_INCLUDE_PATH}")
121     FIND_PATH(GTK2_GLIB_INCLUDE_PATH glib.h
122       ${_GLIB2_INCLUDEDIR}
123       /opt/gnome/include/glib-2.0
124       /usr/include/glib-2.0
125       $ENV{DEVLIBS_PATH}//include//
126     )
127     #MESSAGE(STATUS "DEBUG: GTK2_GLIBCONFIG_INCLUDE_PATH = ${GTK2_GLIBCONFIG_INCLUDE_PATH}")
129     FIND_PATH(GTK2_GTKGL_INCLUDE_PATH gtkgl/gtkglarea.h
130       ${_GLIB2_INCLUDEDIR}
131       /usr/include
132       /usr/local/include
133       /usr/openwin/share/include
134       /opt/gnome/include
135       $ENV{DEVLIBS_PATH}//include//
136     )
138     if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
139       pkgconfig(pango _PANGO_INCLUDEDIR _PANGOinkDir _PANGO_LDFLAGS _PANGO_CFLAGS)
140     else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
141       if (PKG_CONFIG_FOUND)
142         pkg_check_modules(_PANGO pango)
143       endif (PKG_CONFIG_FOUND)
144     endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
146     FIND_PATH(GTK2_PANGO_INCLUDE_PATH pango/pango.h
147       ${_PANGO_INCLUDEDIR}
148       /opt/gnome/include/pango-1.0
149       /usr/include/pango-1.0
150       $ENV{DEVLIBS_PATH}//include//
151     )
153     if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
154       pkgconfig(gdk-2.0 _GDK2_INCLUDEDIR _GDK2inkDir _GDK2_LDFLAGS _GDK2_CFLAGS)
155     else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
156       if (PKG_CONFIG_FOUND)
157         pkg_check_modules(_GDK2 gdk-2.0)
158       endif (PKG_CONFIG_FOUND)
159     endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
161     FIND_PATH(GTK2_GDKCONFIG_INCLUDE_PATH gdkconfig.h
162       ${_GDK2_INCLUDEDIR}
163       /opt/gnome/lib/gtk-2.0/include
164       /opt/gnome/lib64/gtk-2.0/include
165       /usr/lib/gtk-2.0/include
166       /usr/lib64/gtk-2.0/include
167       $ENV{DEVLIBS_PATH}//include//
168     )
170     if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
171       pkgconfig(cairo _CAIRO_INCLUDEDIR _CAIROinkDir _CAIRO_LDFLAGS _CAIRO_CFLAGS)
172     else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
173       if (PKG_CONFIG_FOUND)
174         pkg_check_modules(_CAIRO cairo)
175       endif (PKG_CONFIG_FOUND)
176     endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
178     FIND_PATH(GTK2_CAIRO_INCLUDE_PATH cairo.h
179       ${_CAIRO_INCLUDEDIR}
180       /opt/gnome/include/cairo
181       /usr/include
182       /usr/include/cairo
183       $ENV{DEVLIBS_PATH}//include//
184     )
185     #MESSAGE(STATUS "DEBUG: GTK2_CAIRO_INCLUDE_PATH = ${GTK2_CAIRO_INCLUDE_PATH}")
187     if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
188       pkgconfig(atk _ATK_INCLUDEDIR _ATKinkDir _ATK_LDFLAGS _ATK_CFLAGS)
189     else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
190       if (PKG_CONFIG_FOUND)
191         pkg_check_modules(_ATK atk)
192       endif (PKG_CONFIG_FOUND)
193     endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
195     FIND_PATH(GTK2_ATK_INCLUDE_PATH atk/atk.h
196       ${_ATK_INCLUDEDIR}
197       /opt/gnome/include/atk-1.0
198       /usr/include/atk-1.0
199       $ENV{DEVLIBS_PATH}//include//
200     )
201     #MESSAGE(STATUS "DEBUG: GTK2_ATK_INCLUDE_PATH = ${GTK2_ATK_INCLUDE_PATH}")
203     FIND_LIBRARY(GTK2_GTKGL_LIBRARY
204       NAMES
205         gtkgl
206       PATHS
207         ${_GTK2_INCLUDEDIR}
208         /usr/lib
209         /usr/local/lib
210         /usr/openwin/lib
211         /usr/X11R6/lib
212         /opt/gnome/lib
213     )
215     FIND_LIBRARY(GTK2_GTK_LIBRARY
216       NAMES
217         gtk-x11-2.0
218       PATHS
219         ${_GTK2_LIBDIR}
220         /usr/lib
221         /usr/local/lib
222         /usr/openwin/lib
223         /usr/X11R6/lib
224         /opt/gnome/lib
225     )
227     FIND_LIBRARY(GTK2_GDK_LIBRARY
228       NAMES
229         gdk-x11-2.0
230       PATHS
231         ${_GDK2_LIBDIR}
232         /usr/lib
233         /usr/local/lib
234         /usr/openwin/lib
235         /usr/X11R6/lib
236         /opt/gnome/lib
237     )
239     FIND_LIBRARY(GTK2_GMODULE_LIBRARY
240       NAMES
241         gmodule-2.0
242       PATHS
243         ${_GMODULE2_LIBDIR}
244         /usr/lib
245         /usr/local/lib
246         /usr/openwin/lib
247         /usr/X11R6/lib
248         /opt/gnome/lib
249     )
251     FIND_LIBRARY(GTK2_GLIB_LIBRARY
252       NAMES
253         glib-2.0
254       PATHS
255         ${_GLIB2_LIBDIR}
256         /usr/lib
257         /usr/local/lib
258         /usr/openwin/lib
259         /usr/X11R6/lib
260         /opt/gnome/lib
261     )
263     FIND_LIBRARY(GTK2_Xi_LIBRARY 
264       NAMES
265         Xi
266       PATHS 
267         /usr/lib
268         /usr/local/lib
269         /usr/openwin/lib
270         /usr/X11R6/lib
271         /opt/gnome/lib
272     )
274     FIND_LIBRARY(GTK2_GTHREAD_LIBRARY
275       NAMES
276         gthread-2.0
277       PATHS
278         /usr/lib
279         /usr/local/lib
280         /usr/openwin/lib
281         /usr/X11R6/lib
282         /opt/gnome/lib
283     )
286     FIND_LIBRARY(GTK2_GOBJECT_LIBRARY
287       NAMES
288         gobject-2.0
289       PATHS
290         /usr/lib
291         /usr/local/lib
292         /usr/openwin/lib
293         /usr/X11R6/lib
294         /opt/gnome/lib
295     )
297     IF(GTK2_GTK_INCLUDE_PATH)
298       IF(GTK2_GLIBCONFIG_INCLUDE_PATH)
299         IF(GTK2_GLIB_INCLUDE_PATH)
300           IF(GTK2_GTK_LIBRARY)
301             IF(GTK2_GLIB_LIBRARY)
302               IF(GTK2_PANGO_INCLUDE_PATH)
303                 IF(GTK2_ATK_INCLUDE_PATH)
304                   IF(GTK2_CAIRO_INCLUDE_PATH)
305                     # Assume that if gtk and glib were found, the other
306                     # supporting libraries have also been found.
308                     SET(GTK2_FOUND TRUE)
310                     SET(GTK2_INCLUDE_DIRS
311                       ${GTK2_GTK_INCLUDE_PATH}
312                       ${GTK2_GLIBCONFIG_INCLUDE_PATH}
313                       ${GTK2_GLIB_INCLUDE_PATH}
314                       ${GTK2_PANGO_INCLUDE_PATH}
315                       ${GTK2_GDKCONFIG_INCLUDE_PATH}
316                       ${GTK2_ATK_INCLUDE_PATH}
317                       ${GTK2_CAIRO_INCLUDE_PATH}
318                     )
320                     SET(GTK2_LIBRARIES
321                       ${GTK2_GTK_LIBRARY}
322                       ${GTK2_GDK_LIBRARY}
323                       ${GTK2_GLIB_LIBRARY}
324                     )
325                     #${GTK2_GOBJECT_LIBRARY})
327                     IF(GTK2_GMODULE_LIBRARY)
328                       SET(GTK2_LIBRARIES
329                         ${GTK2_LIBRARIES}
330                         ${GTK2_GMODULE_LIBRARY}
331                       )
332                     ENDIF(GTK2_GMODULE_LIBRARY)
334                     IF(GTK2_GTHREAD_LIBRARY)
335                       SET(GTK2_LIBRARIES
336                         ${GTK2_LIBRARIES}
337                         ${GTK2_GTHREAD_LIBRARY}
338                       )
339                     SET(GTK2_LIBRARIES ${GTK2_LIBRARIES})
340                     ENDIF(GTK2_GTHREAD_LIBRARY)
341                   ELSE(GTK2_CAIRO_INCLUDE_PATH)
342                     MESSAGE(STATUS "Can not find cairo")
343                   ENDIF(GTK2_CAIRO_INCLUDE_PATH)
344                 ELSE(GTK2_ATK_INCLUDE_PATH)
345                   MESSAGE(STATUS "Can not find atk")
346                 ENDIF(GTK2_ATK_INCLUDE_PATH)
347               ELSE(GTK2_PANGO_INCLUDE_PATH)
348                 MESSAGE(STATUS "Can not find pango includes")
349               ENDIF(GTK2_PANGO_INCLUDE_PATH)
350             ELSE(GTK2_GLIB_LIBRARY)
351               MESSAGE(STATUS "Can not find glib lib")
352             ENDIF(GTK2_GLIB_LIBRARY)
353           ELSE(GTK2_GTK_LIBRARY)
354             MESSAGE(STATUS "Can not find gtk lib")
355           ENDIF(GTK2_GTK_LIBRARY)
356         ELSE(GTK2_GLIB_INCLUDE_PATH)
357           MESSAGE(STATUS "Can not find glib includes")
358         ENDIF(GTK2_GLIB_INCLUDE_PATH)
359       ELSE(GTK2_GLIBCONFIG_INCLUDE_PATH)
360         MESSAGE(STATUS "Can not find glibconfig")
361       ENDIF(GTK2_GLIBCONFIG_INCLUDE_PATH)
362     ELSE (GTK2_GTK_INCLUDE_PATH)
363       MESSAGE(STATUS "Can not find gtk includes")
364     ENDIF (GTK2_GTK_INCLUDE_PATH)
366     IF (GTK2_FOUND)
367       IF (NOT GTK2_FIND_QUIETLY)
368         MESSAGE(STATUS "Found GTK2: ${GTK2_LIBRARIES}")
369       ENDIF (NOT GTK2_FIND_QUIETLY)
370     ELSE (GTK2_FOUND)
371       IF (GTK2_FIND_REQUIRED)
372         MESSAGE(SEND_ERROR "Could NOT find GTK2")
373       ENDIF (GTK2_FIND_REQUIRED)
374     ENDIF (GTK2_FOUND)
376     MARK_AS_ADVANCED(
377       GTK2_GDK_LIBRARY
378       GTK2_GLIB_INCLUDE_PATH
379       GTK2_GLIB_LIBRARY
380       GTK2_GLIBCONFIG_INCLUDE_PATH
381       GTK2_GMODULE_LIBRARY
382       GTK2_GTHREAD_LIBRARY
383       GTK2_Xi_LIBRARY
384       GTK2_GTK_INCLUDE_PATH
385       GTK2_GTK_LIBRARY
386       GTK2_GTKGL_INCLUDE_PATH
387       GTK2_GTKGL_LIBRARY
388       GTK2_ATK_INCLUDE_PATH
389       GTK2_GDKCONFIG_INCLUDE_PATH
390       #GTK2_GOBJECT_LIBRARY
391       GTK2_PANGO_INCLUDE_PATH
392     )
393 ENDIF (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS)
395 # vim:et ts=2 sw=2 comments=\:\#