1# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
2# file Copyright.txt or https://cmake.org/licensing for details.
3
4#[=======================================================================[.rst:
5FindGTK
6-------
7
8Find GTK, glib and GTKGLArea
9
10::
11
12  GTK_INCLUDE_DIR   - Directories to include to use GTK
13  GTK_LIBRARIES     - Files to link against to use GTK
14  GTK_FOUND         - GTK was found
15  GTK_GL_FOUND      - GTK's GL features were found
16#]=======================================================================]
17
18# don't even bother under WIN32
19if(UNIX)
20
21  find_path( GTK_gtk_INCLUDE_PATH NAMES gtk/gtk.h
22    PATH_SUFFIXES gtk-1.2 gtk12
23    PATHS
24    /usr/openwin/share/include
25    /usr/openwin/include
26    /opt/gnome/include
27  )
28
29  # Some Linux distributions (e.g. Red Hat) have glibconfig.h
30  # and glib.h in different directories, so we need to look
31  # for both.
32  #  - Atanas Georgiev <[email protected]>
33
34  find_path( GTK_glibconfig_INCLUDE_PATH NAMES glibconfig.h
35    PATH_SUFFIXES glib/include lib/glib/include include/glib12
36    PATHS
37    /usr/openwin/share/include
38    /opt/gnome/include
39    /opt/gnome/lib/glib/include
40  )
41
42  find_path( GTK_glib_INCLUDE_PATH NAMES glib.h
43    PATH_SUFFIXES gtk-1.2 glib-1.2 glib12 glib/include lib/glib/include
44    PATHS
45    /usr/openwin/share/include
46    /opt/gnome/include
47  )
48
49  find_path( GTK_gtkgl_INCLUDE_PATH NAMES gtkgl/gtkglarea.h
50    PATHS /usr/openwin/share/include
51          /opt/gnome/include
52  )
53
54  find_library( GTK_gtkgl_LIBRARY gtkgl
55    /usr/openwin/lib
56    /opt/gnome/lib
57  )
58
59  #
60  # The 12 suffix is thanks to the FreeBSD ports collection
61  #
62
63  find_library( GTK_gtk_LIBRARY
64    NAMES  gtk gtk12
65    PATHS /usr/openwin/lib
66          /opt/gnome/lib
67  )
68
69  find_library( GTK_gdk_LIBRARY
70    NAMES  gdk gdk12
71    PATHS  /usr/openwin/lib
72           /opt/gnome/lib
73  )
74
75  find_library( GTK_gmodule_LIBRARY
76    NAMES  gmodule gmodule12
77    PATHS  /usr/openwin/lib
78           /opt/gnome/lib
79  )
80
81  find_library( GTK_glib_LIBRARY
82    NAMES  glib glib12
83    PATHS  /usr/openwin/lib
84           /opt/gnome/lib
85  )
86
87  find_library( GTK_Xi_LIBRARY
88    NAMES Xi
89    PATHS /usr/openwin/lib
90          /opt/gnome/lib
91    )
92
93  find_library( GTK_gthread_LIBRARY
94    NAMES  gthread gthread12
95    PATHS  /usr/openwin/lib
96           /opt/gnome/lib
97  )
98
99  if(GTK_gtk_INCLUDE_PATH
100     AND GTK_glibconfig_INCLUDE_PATH
101     AND GTK_glib_INCLUDE_PATH
102     AND GTK_gtk_LIBRARY
103     AND GTK_glib_LIBRARY)
104
105    # Assume that if gtk and glib were found, the other
106    # supporting libraries have also been found.
107
108    set( GTK_FOUND "YES" )
109    set( GTK_INCLUDE_DIR  ${GTK_gtk_INCLUDE_PATH}
110                           ${GTK_glibconfig_INCLUDE_PATH}
111                           ${GTK_glib_INCLUDE_PATH} )
112    set( GTK_LIBRARIES  ${GTK_gtk_LIBRARY}
113                        ${GTK_gdk_LIBRARY}
114                        ${GTK_glib_LIBRARY} )
115
116    if(GTK_gmodule_LIBRARY)
117      set(GTK_LIBRARIES ${GTK_LIBRARIES} ${GTK_gmodule_LIBRARY})
118    endif()
119    if(GTK_gthread_LIBRARY)
120      set(GTK_LIBRARIES ${GTK_LIBRARIES} ${GTK_gthread_LIBRARY})
121    endif()
122    if(GTK_Xi_LIBRARY)
123      set(GTK_LIBRARIES ${GTK_LIBRARIES} ${GTK_Xi_LIBRARY})
124    endif()
125
126    if(GTK_gtkgl_INCLUDE_PATH AND GTK_gtkgl_LIBRARY)
127      set( GTK_GL_FOUND "YES" )
128      set( GTK_INCLUDE_DIR  ${GTK_INCLUDE_DIR}
129                            ${GTK_gtkgl_INCLUDE_PATH} )
130      set( GTK_LIBRARIES  ${GTK_gtkgl_LIBRARY} ${GTK_LIBRARIES} )
131      mark_as_advanced(
132        GTK_gtkgl_LIBRARY
133        GTK_gtkgl_INCLUDE_PATH
134        )
135    endif()
136
137  endif()
138
139  mark_as_advanced(
140    GTK_gdk_LIBRARY
141    GTK_glib_INCLUDE_PATH
142    GTK_glib_LIBRARY
143    GTK_glibconfig_INCLUDE_PATH
144    GTK_gmodule_LIBRARY
145    GTK_gthread_LIBRARY
146    GTK_Xi_LIBRARY
147    GTK_gtk_INCLUDE_PATH
148    GTK_gtk_LIBRARY
149    GTK_gtkgl_INCLUDE_PATH
150    GTK_gtkgl_LIBRARY
151  )
152
153endif()
154