diff options
Diffstat (limited to 'meta/recipes-graphics/cairo')
| -rw-r--r-- | meta/recipes-graphics/cairo/cairo-fpu.inc | 6 | ||||
| -rw-r--r-- | meta/recipes-graphics/cairo/cairo.inc | 39 | ||||
| -rw-r--r-- | meta/recipes-graphics/cairo/cairo/0001-Remove-LTO-support.patch | 60 | ||||
| -rw-r--r-- | meta/recipes-graphics/cairo/cairo_1.12.16.bb | 47 |
4 files changed, 152 insertions, 0 deletions
diff --git a/meta/recipes-graphics/cairo/cairo-fpu.inc b/meta/recipes-graphics/cairo/cairo-fpu.inc new file mode 100644 index 0000000000..ef72e8904b --- /dev/null +++ b/meta/recipes-graphics/cairo/cairo-fpu.inc | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | |||
| 2 | def get_cairo_fpu_setting(bb, d): | ||
| 3 | if d.getVar('TARGET_FPU', True) in [ 'soft' ]: | ||
| 4 | return "--disable-some-floating-point" | ||
| 5 | return "" | ||
| 6 | |||
diff --git a/meta/recipes-graphics/cairo/cairo.inc b/meta/recipes-graphics/cairo/cairo.inc new file mode 100644 index 0000000000..cd375597f0 --- /dev/null +++ b/meta/recipes-graphics/cairo/cairo.inc | |||
| @@ -0,0 +1,39 @@ | |||
| 1 | SUMMARY = "The Cairo 2D vector graphics library" | ||
| 2 | DESCRIPTION = "Cairo is a multi-platform library providing anti-aliased \ | ||
| 3 | vector-based rendering for multiple target backends. Paths consist \ | ||
| 4 | of line segments and cubic splines and can be rendered at any width \ | ||
| 5 | with various join and cap styles. All colors may be specified with \ | ||
| 6 | optional translucence (opacity/alpha) and combined using the \ | ||
| 7 | extended Porter/Duff compositing algebra as found in the X Render \ | ||
| 8 | Extension." | ||
| 9 | HOMEPAGE = "http://cairographics.org" | ||
| 10 | BUGTRACKER = "http://bugs.freedesktop.org" | ||
| 11 | SECTION = "libs" | ||
| 12 | LICENSE = "MPL-1 & LGPLv2.1" | ||
| 13 | X11DEPENDS = "virtual/libx11 libsm libxrender libxext" | ||
| 14 | DEPENDS = "libpng fontconfig pixman glib-2.0 zlib" | ||
| 15 | |||
| 16 | PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ | ||
| 17 | ${@bb.utils.contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)}" | ||
| 18 | PACKAGECONFIG[x11] = "--with-x=yes,--without-x,${X11DEPENDS}" | ||
| 19 | PACKAGECONFIG[directfb] = "--enable-directfb=yes,,directfb" | ||
| 20 | PACKAGECONFIG[valgrind] = "--enable-valgrind=yes,--disable-valgrind,valgrind" | ||
| 21 | PACKAGECONFIG[egl] = "--enable-egl=yes,--disable-egl,virtual/egl" | ||
| 22 | PACKAGECONFIG[glesv2] = "--enable-glesv2,--disable-glesv2,virtual/libgles2" | ||
| 23 | |||
| 24 | #check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points | ||
| 25 | require cairo-fpu.inc | ||
| 26 | EXTRA_OECONF += "${@get_cairo_fpu_setting(bb, d)} \ | ||
| 27 | --enable-tee \ | ||
| 28 | " | ||
| 29 | |||
| 30 | inherit autotools pkgconfig | ||
| 31 | |||
| 32 | # We don't depend on binutils so we need to disable this | ||
| 33 | export ac_cv_lib_bfd_bfd_openr="no" | ||
| 34 | # Ensure we don't depend on LZO | ||
| 35 | export ac_cv_lib_lzo2_lzo2a_decompress="no" | ||
| 36 | |||
| 37 | BBCLASSEXTEND = "native" | ||
| 38 | |||
| 39 | CFLAGS += "-ffat-lto-objects" | ||
diff --git a/meta/recipes-graphics/cairo/cairo/0001-Remove-LTO-support.patch b/meta/recipes-graphics/cairo/cairo/0001-Remove-LTO-support.patch new file mode 100644 index 0000000000..87297b25b4 --- /dev/null +++ b/meta/recipes-graphics/cairo/cairo/0001-Remove-LTO-support.patch | |||
| @@ -0,0 +1,60 @@ | |||
| 1 | From bdf15c249130568093676ed3b6c91f6f5e06f089 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Uli Schlachter <psychon@znc.in> | ||
| 3 | Date: Mon, 21 Jul 2014 17:10:16 +0200 | ||
| 4 | Subject: [PATCH] Remove LTO support | ||
| 5 | |||
| 6 | This just never worked too well and caused too many issues. I don't think anyone | ||
| 7 | will miss this. | ||
| 8 | |||
| 9 | As mentioned in the below bug report, proper LTO support also requires using | ||
| 10 | special versions of ranlib, nm and ar which support the LTO object files. | ||
| 11 | Otherwise, calling the normal ranlib on an .a library breaks the list of | ||
| 12 | exported symbols and thus completely breaks the static library. | ||
| 13 | |||
| 14 | This (partly) reverts the following commits: | ||
| 15 | |||
| 16 | c3645d97ebd24c6f7ad850785d585aebc706a11c configure.ac: Add a --disable-lto configure option | ||
| 17 | d486ea30f1a58640a1178de74f705a73845b1cda configure: Conditionally include -flto | ||
| 18 | 0870c6fb5b39dcc04fa376123848adde2d06d2ce gcc-4.5 warnings and optimisation flags. | ||
| 19 | |||
| 20 | (The last commit is the one which brought us -flto in the first place even | ||
| 21 | though it doesn't talk about this. It's also the one which is only reverted | ||
| 22 | partly.) | ||
| 23 | |||
| 24 | Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=77060 | ||
| 25 | CC: Chris Wilson <chris@chris-wilson.co.uk> | ||
| 26 | Signed-off-by: Uli Schlachter <psychon@znc.in> | ||
| 27 | Reviewed-by: Bryce Harrington <b.harrington@samsung.com> | ||
| 28 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
| 29 | |||
| 30 | Upstream-Status: Backport (will be in 1.14*) | ||
| 31 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
| 32 | --- | ||
| 33 | build/configure.ac.warnings | 11 ----------- | ||
| 34 | 1 file changed, 11 deletions(-) | ||
| 35 | |||
| 36 | diff --git a/build/configure.ac.warnings b/build/configure.ac.warnings | ||
| 37 | index f984eb2..2c4e34d 100644 | ||
| 38 | --- a/build/configure.ac.warnings | ||
| 39 | +++ b/build/configure.ac.warnings | ||
| 40 | @@ -35,17 +35,6 @@ MAYBE_WARN="$MAYBE_WARN -erroff=E_ENUM_TYPE_MISMATCH_ARG \ | ||
| 41 | |||
| 42 | dnl We also abuse the warning-flag facility to enable other compiler | ||
| 43 | dnl options. Namely, the following: | ||
| 44 | - | ||
| 45 | -dnl -flto working really needs a test link, not just a compile | ||
| 46 | - | ||
| 47 | -safe_MAYBE_WARN="$MAYBE_WARN" | ||
| 48 | -MAYBE_WARN="$MAYBE_WARN -flto" | ||
| 49 | -AC_TRY_LINK([],[ | ||
| 50 | - int main(int argc, char **argv) { return 0; } | ||
| 51 | -],[],[ | ||
| 52 | - MAYBE_WARN="$safe_MAYBE_WARN" | ||
| 53 | -]) | ||
| 54 | - | ||
| 55 | MAYBE_WARN="$MAYBE_WARN -fno-strict-aliasing -fno-common" | ||
| 56 | |||
| 57 | dnl Also to turn various gcc/glibc-specific preprocessor checks | ||
| 58 | -- | ||
| 59 | 2.0.2 | ||
| 60 | |||
diff --git a/meta/recipes-graphics/cairo/cairo_1.12.16.bb b/meta/recipes-graphics/cairo/cairo_1.12.16.bb new file mode 100644 index 0000000000..42f7682607 --- /dev/null +++ b/meta/recipes-graphics/cairo/cairo_1.12.16.bb | |||
| @@ -0,0 +1,47 @@ | |||
| 1 | require cairo.inc | ||
| 2 | |||
| 3 | LIC_FILES_CHKSUM = "file://COPYING;md5=e73e999e0c72b5ac9012424fa157ad77" | ||
| 4 | |||
| 5 | SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.xz \ | ||
| 6 | file://0001-Remove-LTO-support.patch \ | ||
| 7 | " | ||
| 8 | |||
| 9 | SRC_URI[md5sum] = "a1304edcdc99282f478b995ee5f8f854" | ||
| 10 | SRC_URI[sha256sum] = "2505959eb3f1de3e1841023b61585bfd35684b9733c7b6a3643f4f4cbde6d846" | ||
| 11 | |||
| 12 | PACKAGES =+ "cairo-gobject cairo-script-interpreter cairo-perf-utils" | ||
| 13 | |||
| 14 | SUMMARY_${PN} = "The Cairo 2D vector graphics library" | ||
| 15 | DESCRIPTION_${PN} = "Cairo is a multi-platform library providing anti-aliased \ | ||
| 16 | vector-based rendering for multiple target backends. Paths consist \ | ||
| 17 | of line segments and cubic splines and can be rendered at any width \ | ||
| 18 | with various join and cap styles. All colors may be specified with \ | ||
| 19 | optional translucence (opacity/alpha) and combined using the \ | ||
| 20 | extended Porter/Duff compositing algebra as found in the X Render \ | ||
| 21 | Extension." | ||
| 22 | |||
| 23 | SUMMARY_cairo-gobject = "The Cairo library GObject wrapper library" | ||
| 24 | DESCRIPTION_cairo-gobject = "A GObject wrapper library for the Cairo API." | ||
| 25 | |||
| 26 | SUMMARY_cairo-script-interpreter = "The Cairo library script interpreter" | ||
| 27 | DESCRIPTION_cairo-script-interpreter = "The Cairo script interpreter implements \ | ||
| 28 | CairoScript. CairoScript is used by tracing utilities to enable the ability \ | ||
| 29 | to replay rendering." | ||
| 30 | |||
| 31 | DESCRIPTION_cairo-perf-utils = "The Cairo library performance utilities" | ||
| 32 | |||
| 33 | FILES_${PN} = "${libdir}/libcairo.so.*" | ||
| 34 | FILES_${PN}-dev += "${libdir}/cairo/*.la ${libdir}/cairo/*.so" | ||
| 35 | #FILES_${PN}-dbg += "${libdir}/cairo/.debug" | ||
| 36 | #FILES_${PN}-staticdev += "${libdir}/cairo/*.a" | ||
| 37 | FILES_cairo-gobject = "${libdir}/libcairo-gobject.so.*" | ||
| 38 | FILES_cairo-script-interpreter = "${libdir}/libcairo-script-interpreter.so.*" | ||
| 39 | FILES_cairo-perf-utils = "${bindir}/cairo-trace ${libdir}/cairo/libcairo-trace.so.*" | ||
| 40 | |||
| 41 | do_install_append () { | ||
| 42 | rm -rf ${D}${bindir}/cairo-sphinx | ||
| 43 | rm -rf ${D}${libdir}/cairo/cairo-fdr* | ||
| 44 | rm -rf ${D}${libdir}/cairo/cairo-sphinx* | ||
| 45 | rm -rf ${D}${libdir}/cairo/.debug/cairo-fdr* | ||
| 46 | rm -rf ${D}${libdir}/cairo/.debug/cairo-sphinx* | ||
| 47 | } | ||
