]> rtime.felk.cvut.cz Git - coffee/buildroot.git/blob - package/libgtk3/libgtk3.mk
Update for 2018.05-rc2
[coffee/buildroot.git] / package / libgtk3 / libgtk3.mk
1 ################################################################################
2 #
3 # libgtk3
4 #
5 ################################################################################
6
7 LIBGTK3_VERSION_MAJOR = 3.22
8 LIBGTK3_VERSION = $(LIBGTK3_VERSION_MAJOR).30
9 LIBGTK3_SOURCE = gtk+-$(LIBGTK3_VERSION).tar.xz
10 LIBGTK3_SITE = http://ftp.gnome.org/pub/gnome/sources/gtk+/$(LIBGTK3_VERSION_MAJOR)
11 LIBGTK3_LICENSE = LGPL-2.0+
12 LIBGTK3_LICENSE_FILES = COPYING
13 LIBGTK3_INSTALL_STAGING = YES
14 LIBGTK3_AUTORECONF = YES
15
16 LIBGTK3_CONF_ENV = \
17         ac_cv_path_GTK_UPDATE_ICON_CACHE=$(HOST_DIR)/bin/gtk-update-icon-cache \
18         ac_cv_path_GDK_PIXBUF_CSOURCE=$(HOST_DIR)/bin/gdk-pixbuf-csource \
19         PKG_CONFIG_FOR_BUILD=$(HOST_DIR)/bin/pkgconf
20
21 LIBGTK3_CONF_OPTS = \
22         --disable-glibtest \
23         --enable-explicit-deps=no
24
25 # Override pkg-config pkgdatadir variable, it needs the prefix
26 LIBGTK3_MAKE_OPTS = \
27         WAYLAND_PROTOCOLS_DATADIR=$(STAGING_DIR)/usr/share/wayland-protocols
28
29 LIBGTK3_DEPENDENCIES = host-pkgconf host-libgtk3 atk libglib2 cairo pango gdk-pixbuf libepoxy
30
31 ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y)
32 LIBGTK3_DEPENDENCIES += fontconfig xlib_libX11 xlib_libXext xlib_libXrender xlib_libXi
33
34 LIBGTK3_CONF_OPTS += \
35         --enable-x11-backend \
36         --x-includes=$(STAGING_DIR)/usr/include/X11 \
37         --x-libraries=$(STAGING_DIR)/usr/lib
38 else
39 LIBGTK3_CONF_OPTS += --disable-x11-backend
40 endif
41
42 ifeq ($(BR2_PACKAGE_LIBGTK3_WAYLAND),y)
43 LIBGTK3_DEPENDENCIES += wayland wayland-protocols libxkbcommon
44 LIBGTK3_CONF_OPTS += --enable-wayland-backend
45 else
46 LIBGTK3_CONF_OPTS += --disable-wayland-backend
47 endif
48
49 ifeq ($(BR2_PACKAGE_LIBGTK3_BROADWAY),y)
50 LIBGTK3_CONF_OPTS += --enable-broadway-backend
51 else
52 LIBGTK3_CONF_OPTS += --disable-broadway-backend
53 endif
54
55 ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y)
56 LIBGTK3_CONF_OPTS += --enable-xinerama
57 LIBGTK3_DEPENDENCIES += xlib_libXinerama
58 else
59 LIBGTK3_CONF_OPTS += --disable-xinerama
60 endif
61
62 ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y)
63 LIBGTK3_CONF_OPTS += --enable-xrandr
64 LIBGTK3_DEPENDENCIES += xlib_libXrandr
65 else
66 LIBGTK3_CONF_OPTS += --disable-xrandr
67 endif
68
69 ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y)
70 LIBGTK3_DEPENDENCIES += xlib_libXcursor
71 endif
72
73 ifeq ($(BR2_PACKAGE_XLIB_LIBXFIXES),y)
74 LIBGTK3_CONF_OPTS += --enable-xfixes
75 LIBGTK3_DEPENDENCIES += xlib_libXfixes
76 else
77 LIBGTK3_CONF_OPTS += --disable-xfixes
78 endif
79
80 ifeq ($(BR2_PACKAGE_XLIB_LIBXCOMPOSITE),y)
81 LIBGTK3_CONF_OPTS += --enable-xcomposite
82 LIBGTK3_DEPENDENCIES += xlib_libXcomposite
83 else
84 LIBGTK3_CONF_OPTS += --disable-xcomposite
85 endif
86
87 ifeq ($(BR2_PACKAGE_XLIB_LIBXDAMAGE),y)
88 LIBGTK3_CONF_OPTS += --enable-xdamage
89 LIBGTK3_DEPENDENCIES += xlib_libXdamage
90 else
91 LIBGTK3_CONF_OPTS += --disable-xdamage
92 endif
93
94 ifeq ($(BR2_PACKAGE_XLIB_LIBXKBFILE),y)
95 LIBGTK3_CONF_OPTS += --enable-xkb
96 LIBGTK3_DEPENDENCIES += xlib_libxkbfile
97 else
98 LIBGTK3_CONF_OPTS += --disable-xkb
99 endif
100
101 ifeq ($(BR2_PACKAGE_CUPS),y)
102 LIBGTK3_CONF_OPTS += --enable-cups
103 LIBGTK3_CONF_ENV += ac_cv_path_CUPS_CONFIG=$(STAGING_DIR)/usr/bin/cups-config
104 LIBGTK3_DEPENDENCIES += cups
105 else
106 LIBGTK3_CONF_OPTS += --disable-cups
107 endif
108
109 ifeq ($(BR2_PACKAGE_LIBGTK3_DEMO),y)
110 LIBGTK3_DEPENDENCIES += hicolor-icon-theme shared-mime-info
111 else
112 define LIBGTK3_REMOVE_DEMOS
113         $(RM) $(TARGET_DIR)/usr/bin/gtk3-demo \
114                 $(TARGET_DIR)/usr/bin/gtk3-demo-application
115 endef
116 LIBGTK3_POST_INSTALL_TARGET_HOOKS += LIBGTK3_REMOVE_DEMOS
117 endif
118
119 ifeq ($(BR2_PACKAGE_LIBGTK3_TESTS),y)
120 LIBGTK3_CONF_OPTS += --enable-installed-tests
121 else
122 LIBGTK3_CONF_OPTS += --disable-installed-tests
123 endif
124
125 define LIBGTK3_COMPILE_GLIB_SCHEMAS
126         $(HOST_DIR)/bin/glib-compile-schemas \
127                 $(TARGET_DIR)/usr/share/glib-2.0/schemas
128 endef
129
130 LIBGTK3_POST_INSTALL_TARGET_HOOKS += LIBGTK3_COMPILE_GLIB_SCHEMAS
131
132 # gtk+ >= 3.10 can build a native version of gtk-update-icon-cache if
133 # --enable-gtk2-dependency=no is set when invoking './configure'.
134 #
135 # Unfortunately, if the target toolchain is based on uClibc, the macro
136 # AM_GLIB_GNU_GETTEXT will detect the libintl built for the target and
137 # will add '-lintl' to the default list of libraries for the linker (used
138 # for both native and target builds).
139 #
140 # But no native version of libintl is available (the functions are
141 # provided by glibc). So gtk-update-icon-cache will not build.
142 #
143 # As a workaround, we build gtk-update-icon-cache on our own, set
144 # --enable-gtk2-dependency=yes and force './configure' to use our version.
145
146 HOST_LIBGTK3_DEPENDENCIES = \
147         host-libglib2 \
148         host-libpng \
149         host-gdk-pixbuf \
150         host-pkgconf \
151         host-librsvg
152
153 HOST_LIBGTK3_CFLAGS = \
154         `$(HOST_DIR)/bin/pkgconf --cflags --libs gdk-pixbuf-2.0` \
155         `$(HOST_DIR)/bin/pkgconf --cflags --libs gio-2.0`
156
157 define HOST_LIBGTK3_CONFIGURE_CMDS
158         echo "#define GETTEXT_PACKAGE \"gtk30\"" >> $(@D)/gtk/config.h
159         echo "#define HAVE_UNISTD_H 1" >> $(@D)/gtk/config.h
160         echo "#define HAVE_FTW_H 1" >> $(@D)/gtk/config.h
161 endef
162
163 define HOST_LIBGTK3_BUILD_CMDS
164         $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \
165                 $(@D)/gtk/updateiconcache.c \
166                 $(HOST_LIBGTK3_CFLAGS) \
167                 -o $(@D)/gtk/gtk-update-icon-cache
168         $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \
169                 $(@D)/gtk/encodesymbolic.c \
170                 $(HOST_LIBGTK3_CFLAGS) \
171                 -o $(@D)/gtk/gtk-encode-symbolic-svg
172 endef
173
174 define HOST_LIBGTK3_INSTALL_CMDS
175         $(INSTALL) -D -m 0755 $(@D)/gtk/gtk-update-icon-cache \
176                 $(HOST_DIR)/bin/gtk-update-icon-cache
177         $(INSTALL) -D -m 0755 $(@D)/gtk/gtk-encode-symbolic-svg \
178                 $(HOST_DIR)/bin/gtk-encode-symbolic-svg
179 endef
180
181 # Create icon-theme.cache for each of the icon directories/themes
182 # It's not strictly necessary but speeds up lookups
183 define LIBGTK3_UPDATE_ICON_CACHE
184         find $(TARGET_DIR)/usr/share/icons -maxdepth 1 -mindepth 1 -type d \
185                 -exec $(HOST_DIR)/bin/gtk-update-icon-cache {} \;
186 endef
187 LIBGTK3_TARGET_FINALIZE_HOOKS += LIBGTK3_UPDATE_ICON_CACHE
188
189 $(eval $(autotools-package))
190 $(eval $(host-autotools-package))