blob: 96c54f16d6367089485c5769b950cf72777a4d7a [file] [log] [blame]
Andrew Geissler9aee5002022-03-30 16:27:02 +00001SUMMARY = "Library for rendering SVG files"
2DESCRIPTION = "A small library to render Scalable Vector Graphics (SVG), \
3associated with the GNOME Project. It renders SVG files to Cairo surfaces. \
4Cairo is the 2D, antialiased drawing library that GNOME uses to draw things to \
5the screen or to generate output for printing."
6HOMEPAGE = "https://gitlab.gnome.org/GNOME/librsvg"
7BUGTRACKER = "https://gitlab.gnome.org/GNOME/librsvg/issues"
8
9LICENSE = "LGPL-2.1-or-later"
10LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
11 "
12
13SECTION = "x11/utils"
Patrick Williams03907ee2022-05-01 06:28:52 -050014# Note: docutils/gi-docgen should be made optional when upstream enables that
15# https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/687
16DEPENDS = "cairo gdk-pixbuf glib-2.0 libcroco libxml2 pango python3-docutils-native gi-docgen-native"
Andrew Geissler9aee5002022-03-30 16:27:02 +000017BBCLASSEXTEND = "native nativesdk"
18
Patrick Williams03907ee2022-05-01 06:28:52 -050019inherit gnomebase pixbufcache upstream-version-is-even gobject-introspection rust vala
Andrew Geissler9aee5002022-03-30 16:27:02 +000020
21SRC_URI += "file://0001-Makefile.am-pass-rust-target-to-cargo-also-when-not-.patch \
22 file://0001-system-deps-src-lib.rs-do-not-probe-into-harcoded-li.patch \
Patrick Williams03907ee2022-05-01 06:28:52 -050023 file://0001-Disable-docs.patch \
Andrew Geissler9aee5002022-03-30 16:27:02 +000024 "
25
Patrick Williams03907ee2022-05-01 06:28:52 -050026SRC_URI[archive.sha256sum] = "baf8ebc147f146b4261bb3d0cd0fac944bf8dbb4b1f2347d23341f974dcc3085"
Andrew Geissler9aee5002022-03-30 16:27:02 +000027
28# librsvg is still autotools-based, but is calling cargo from its automake-driven makefiles
29# so we cannot use cargo class directly, but still need bits and pieces from it
30# for cargo to be happy
31BASEDEPENDS:append = " cargo-native"
32
33export RUST_BACKTRACE = "full"
34export RUSTFLAGS
35export RUST_TARGET_PATH
36
37export RUST_TARGET = "${HOST_SYS}"
38
39RUSTFLAGS:append:mips = " --cfg crossbeam_no_atomic_64"
40RUSTFLAGS:append:mipsel = " --cfg crossbeam_no_atomic_64"
41RUSTFLAGS:append:powerpc = " --cfg crossbeam_no_atomic_64"
42RUSTFLAGS:append:riscv32 = " --cfg crossbeam_no_atomic_64"
43
44# rust-cross writes the target linker binary into target json definition without any flags.
45# This breaks here because the linker isn't going to work without at least knowing where
46# the sysroot is. So copy the json to workdir, and patch in the path to wrapper from rust class
47# which supplies the needed flags.
48do_compile:prepend() {
49 cp ${STAGING_LIBDIR_NATIVE}/rustlib/${HOST_SYS}.json ${WORKDIR}
50 cp ${STAGING_LIBDIR_NATIVE}/rustlib/${BUILD_SYS}.json ${WORKDIR}
51 sed -ie 's,"linker": ".*","linker": "${RUST_TARGET_CC}",g' ${WORKDIR}/${HOST_SYS}.json
52 RUST_TARGET_PATH="${WORKDIR}"
53 export RUST_TARGET_PATH
54}
55
56# Issue only on windows
57CVE_CHECK_IGNORE += "CVE-2018-1000041"
58
59CACHED_CONFIGUREVARS = "ac_cv_path_GDK_PIXBUF_QUERYLOADERS=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders"
60
61PACKAGECONFIG ??= "gdkpixbuf"
62# The gdk-pixbuf loader
63PACKAGECONFIG[gdkpixbuf] = "--enable-pixbuf-loader,--disable-pixbuf-loader,gdk-pixbuf-native"
64
65do_install:append() {
66 # Loadable modules don't need .a or .la on Linux
67 rm -f ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.a ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.la
68}
69
70PACKAGES =+ "librsvg-gtk rsvg"
71FILES:rsvg = "${bindir}/rsvg* \
72 ${datadir}/pixmaps/svg-viewer.svg \
73 ${datadir}/themes"
74FILES:librsvg-gtk = "${libdir}/gdk-pixbuf-2.0/*/*/*.so \
75 ${datadir}/thumbnailers/librsvg.thumbnailer"
76RRECOMMENDS:librsvg-gtk = "gdk-pixbuf-bin"
77
78PIXBUF_PACKAGES = "librsvg-gtk"