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