xref: /OK3568_Linux_fs/buildroot/package/cairo/cairo.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1################################################################################
2#
3# cairo
4#
5################################################################################
6
7CAIRO_VERSION = 1.16.0
8CAIRO_SOURCE = cairo-$(CAIRO_VERSION).tar.xz
9CAIRO_LICENSE = LGPL-2.1 or MPL-1.1 (library)
10CAIRO_LICENSE_FILES = COPYING COPYING-LGPL-2.1 COPYING-MPL-1.1
11CAIRO_CPE_ID_VENDOR = cairographics
12CAIRO_SITE = http://cairographics.org/releases
13CAIRO_INSTALL_STAGING = YES
14
15# 0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch
16CAIRO_IGNORE_CVES += CVE-2018-19876
17
18# relocation truncated to fit: R_68K_GOT16O
19ifeq ($(BR2_m68k_cf),y)
20CAIRO_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -mxgot"
21endif
22
23ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),)
24CAIRO_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -DCAIRO_NO_MUTEX=1"
25endif
26
27# cairo can use C++11 atomics when available, so we need to link with
28# libatomic for the architectures who need libatomic.
29ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
30CAIRO_CONF_ENV += LIBS="-latomic"
31endif
32
33CAIRO_CONF_OPTS = \
34	--enable-trace=no \
35	--enable-interpreter=no
36
37CAIRO_DEPENDENCIES = host-pkgconf fontconfig pixman
38
39# Just the bare minimum to make other host-* packages happy
40HOST_CAIRO_CONF_OPTS = \
41	--enable-trace=no \
42	--enable-interpreter=no \
43	--disable-directfb \
44	--enable-ft \
45	--enable-gobject \
46	--disable-glesv2 \
47	--disable-vg \
48	--disable-xlib \
49	--disable-xcb \
50	--without-x \
51	--disable-xlib-xrender \
52	--disable-ps \
53	--disable-pdf \
54	--enable-png \
55	--enable-script \
56	--disable-svg \
57	--disable-tee \
58	--disable-xml
59HOST_CAIRO_DEPENDENCIES = \
60	host-freetype \
61	host-fontconfig \
62	host-libglib2 \
63	host-libpng \
64	host-pixman \
65	host-pkgconf
66
67# DirectFB svg support rely on Cairo and Cairo DirectFB support depends on
68# DirectFB. Break circular dependency by disabling DirectFB support in Cairo
69# (which is experimental)
70ifeq ($(BR2_PACKAGE_DIRECTFB)x$(BR2_PACKAGE_DIRECTFB_SVG),yx)
71CAIRO_CONF_OPTS += --enable-directfb
72CAIRO_DEPENDENCIES += directfb
73else
74CAIRO_CONF_OPTS += --disable-directfb
75endif
76
77ifeq ($(BR2_PACKAGE_FREETYPE),y)
78CAIRO_CONF_OPTS += --enable-ft
79CAIRO_DEPENDENCIES += freetype
80else
81CAIRO_CONF_OPTS += --disable-ft
82endif
83
84ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
85CAIRO_CONF_OPTS += --enable-gobject
86CAIRO_DEPENDENCIES += libglib2
87else
88CAIRO_CONF_OPTS += --disable-gobject
89endif
90
91# Can use GL or GLESv2 but not both
92ifeq ($(BR2_PACKAGE_HAS_LIBGL),y)
93CAIRO_CONF_OPTS += --enable-gl --disable-glesv2
94CAIRO_DEPENDENCIES += libgl
95else
96ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y)
97CAIRO_CONF_OPTS += --disable-gl --enable-glesv2
98CAIRO_DEPENDENCIES += libgles
99else
100CAIRO_CONF_OPTS += --disable-gl --disable-glesv2
101endif
102endif
103
104ifeq ($(BR2_PACKAGE_HAS_LIBOPENVG),y)
105CAIRO_CONF_OPTS += --enable-vg
106CAIRO_DEPENDENCIES += libopenvg
107else
108CAIRO_CONF_OPTS += --disable-vg
109endif
110
111ifeq ($(BR2_PACKAGE_LZO),y)
112CAIRO_DEPENDENCIES += lzo
113endif
114
115ifeq ($(BR2_PACKAGE_XORG7),y)
116CAIRO_CONF_OPTS += --enable-xlib --enable-xcb --with-x
117CAIRO_DEPENDENCIES += xlib_libX11 xlib_libXext
118else
119CAIRO_CONF_OPTS += --disable-xlib --disable-xcb --without-x
120endif
121
122ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y)
123CAIRO_CONF_OPTS += --enable-xlib-xrender
124CAIRO_DEPENDENCIES += xlib_libXrender
125else
126CAIRO_CONF_OPTS += --disable-xlib-xrender
127endif
128
129ifeq ($(BR2_PACKAGE_CAIRO_PS),y)
130CAIRO_CONF_OPTS += --enable-ps
131CAIRO_DEPENDENCIES += zlib
132else
133CAIRO_CONF_OPTS += --disable-ps
134endif
135
136ifeq ($(BR2_PACKAGE_CAIRO_PDF),y)
137CAIRO_CONF_OPTS += --enable-pdf
138CAIRO_DEPENDENCIES += zlib
139else
140CAIRO_CONF_OPTS += --disable-pdf
141endif
142
143ifeq ($(BR2_PACKAGE_CAIRO_PNG),y)
144CAIRO_CONF_OPTS += --enable-png
145CAIRO_DEPENDENCIES += libpng
146else
147CAIRO_CONF_OPTS += --disable-png
148endif
149
150ifeq ($(BR2_PACKAGE_CAIRO_SCRIPT),y)
151CAIRO_CONF_OPTS += --enable-script
152else
153CAIRO_CONF_OPTS += --disable-script
154endif
155
156ifeq ($(BR2_PACKAGE_CAIRO_SVG),y)
157CAIRO_CONF_OPTS += --enable-svg
158else
159CAIRO_CONF_OPTS += --disable-svg
160endif
161
162ifeq ($(BR2_PACKAGE_CAIRO_TEE),y)
163CAIRO_CONF_OPTS += --enable-tee
164else
165CAIRO_CONF_OPTS += --disable-tee
166endif
167
168ifeq ($(BR2_PACKAGE_CAIRO_XML),y)
169CAIRO_CONF_OPTS += --enable-xml
170else
171CAIRO_CONF_OPTS += --disable-xml
172endif
173
174$(eval $(autotools-package))
175$(eval $(host-autotools-package))
176