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