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