|
@@ -11,9 +11,10 @@ LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
|
|
|
|
|
|
SECTION = "x11/utils"
|
|
|
DEPENDS = "cairo gdk-pixbuf glib-2.0 libxml2 pango python3-docutils-native cargo-c-native"
|
|
|
+RDEPENDS:${PN}-ptest += "rsvg liberation-fonts"
|
|
|
BBCLASSEXTEND = "native nativesdk"
|
|
|
|
|
|
-inherit cargo_common gnomebase pixbufcache gobject-introspection rust vala gi-docgen cargo-update-recipe-crates
|
|
|
+inherit cargo_common gnomebase pixbufcache gobject-introspection rust vala gi-docgen cargo-update-recipe-crates ptest-cargo
|
|
|
GIR_MESON_ENABLE_FLAG = 'enabled'
|
|
|
GIR_MESON_DISABLE_FLAG = 'disabled'
|
|
|
GIDOCGEN_MESON_OPTION = 'docs'
|
|
@@ -23,7 +24,8 @@ GIDOCGEN_MESON_DISABLE_FLAG = 'disabled'
|
|
|
require ${BPN}-crates.inc
|
|
|
|
|
|
SRC_URI += "file://0001-query-rustc-append-RUSTFLAGS-to-rustc-executable.patch \
|
|
|
- file://0001-Revert-meson.build-do-not-force-disable-gdk-pixbuf-l.patch"
|
|
|
+ file://0001-Revert-meson.build-do-not-force-disable-gdk-pixbuf-l.patch \
|
|
|
+ file://run-ptest"
|
|
|
SRC_URI[archive.sha256sum] = "dbd0db40a1179a382fbb8cc930837671b973d722ba106a3dee2aad0fd858e2c4"
|
|
|
|
|
|
UPSTREAM_CHECK_REGEX = "librsvg-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
|
|
@@ -58,17 +60,41 @@ LDFLAGS += " -L${B}/rsvg"
|
|
|
# needed on ubuntu 20.04/debian 11 to avoid 'undefined reference to `dlsym'' errors
|
|
|
BUILD_LDFLAGS += " -ldl"
|
|
|
|
|
|
-PACKAGECONFIG ??= "gdkpixbuf"
|
|
|
+PACKAGECONFIG ??= "gdkpixbuf ${@bb.utils.contains('PTEST_ENABLED', '1', 'apitest', '', d)}"
|
|
|
PACKAGECONFIG:append:class-target = " ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'vala', '', d)}"
|
|
|
# The gdk-pixbuf loader
|
|
|
PACKAGECONFIG[gdkpixbuf] = "-Dpixbuf-loader=enabled,-Dpixbuf-loader=disabled,gdk-pixbuf-native"
|
|
|
PACKAGECONFIG[vala] = "-Dvala=enabled,-Dvala=disabled"
|
|
|
+PACKAGECONFIG[apitest] = "-Dtests=true,-Dtests=false"
|
|
|
|
|
|
do_install:append() {
|
|
|
# Loadable modules don't need .a or .la on Linux
|
|
|
rm -f ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.a ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.la
|
|
|
}
|
|
|
|
|
|
+do_compile_ptest_cargo:prepend() {
|
|
|
+ # The packageconfig is for meson, but the rust tests are compiled directly with cargo,
|
|
|
+ # so these arguments don't apply. Note that this is Python, the intendation is intentional.
|
|
|
+ d.setVar('PACKAGECONFIG_CONFARGS', '')
|
|
|
+}
|
|
|
+
|
|
|
+do_compile_ptest:prepend() {
|
|
|
+ # rsvg-convert is the tested binary, which shouldn't be executed as a test.
|
|
|
+ # Beside this, it is not bit-identical to the actual rsvg-convert binary, so
|
|
|
+ # remove it from this list, as create a symlink to the real thing from run-ptest script
|
|
|
+ sed -i '/rsvg-convert$/d' ${CARGO_TEST_BINARIES_FILES}
|
|
|
+}
|
|
|
+
|
|
|
+do_install_ptest:append() {
|
|
|
+ install -d ${D}${PTEST_PATH}/api_test/bin
|
|
|
+ cp -r ${S}/rsvg/tests ${D}${PTEST_PATH}
|
|
|
+ cp -r ${S}/rsvg_convert/tests ${D}${PTEST_PATH}
|
|
|
+ install ${B}/librsvg-c/tests-c/api ${D}${PTEST_PATH}/api_test/bin
|
|
|
+ # the api tests look for the required files in rsvg folder, so simulate it
|
|
|
+ # with a symlink that points to the current folder
|
|
|
+ ln -s . ${D}${PTEST_PATH}/rsvg
|
|
|
+}
|
|
|
+
|
|
|
PACKAGES =+ "librsvg-gtk rsvg"
|
|
|
FILES:rsvg = "${bindir}/rsvg* \
|
|
|
${datadir}/pixmaps/svg-viewer.svg \
|