| From dcaf3106e2cca27f728a8bd26127430500a1136e Mon Sep 17 00:00:00 2001 |
| From: Alexander Kanavin <alex.kanavin@gmail.com> |
| Date: Fri, 22 Feb 2019 13:22:06 +0100 |
| Subject: [PATCH] Work-around thumbnailer and pixdata cross-compile failure |
| |
| Use native gdk-pixbuf-print-mime-types and gdk-pixbuf-pixdata |
| when generating the thumbnail metadata and resources. |
| |
| This works but the mime types will come from native |
| loader.cache (which will only contain in-tree loaders), not from the |
| target loader.cache. |
| |
| The upstream issue is https://bugzilla.gnome.org/show_bug.cgi?id=779057 |
| |
| Upstream-Status: Inappropriate [workaround] |
| Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> |
| |
| --- |
| tests/meson.build | 11 +++++++++-- |
| thumbnailer/meson.build | 23 ++++++++++++++++++++++- |
| 2 files changed, 31 insertions(+), 3 deletions(-) |
| |
| diff --git a/tests/meson.build b/tests/meson.build |
| index 7c6cb11..07121f1 100644 |
| --- a/tests/meson.build |
| +++ b/tests/meson.build |
| @@ -8,13 +8,20 @@ if enabled_loaders.contains('png') and host_system != 'windows' |
| # Resources; we cannot use gnome.compile_resources() here, because we need to |
| # override the environment in order to use the utilities we just built instead |
| # of the system ones |
| + |
| + if not meson.is_cross_build() |
| + pixdata_binary = gdk_pixbuf_pixdata.full_path() |
| + else |
| + pixdata_binary = 'gdk-pixbuf-pixdata' |
| + endif |
| + |
| resources_c = custom_target('resources.c', |
| input: 'resources.gresource.xml', |
| output: 'resources.c', |
| command: [ |
| gen_resources, |
| '--glib-compile-resources=@0@'.format(glib_compile_resources.full_path()), |
| - '--pixdata=@0@'.format(gdk_pixbuf_pixdata.full_path()), |
| + '--pixdata=@0@'.format(pixdata_binary), |
| '--loaders=@0@'.format(loaders_cache.full_path()), |
| '--sourcedir=@0@'.format(meson.current_source_dir()), |
| '--source', |
| @@ -33,7 +40,7 @@ if enabled_loaders.contains('png') and host_system != 'windows' |
| command: [ |
| gen_resources, |
| '--glib-compile-resources=@0@'.format(glib_compile_resources.full_path()), |
| - '--pixdata=@0@'.format(gdk_pixbuf_pixdata.full_path()), |
| + '--pixdata=@0@'.format(pixdata_binary), |
| '--loaders=@0@'.format(loaders_cache.full_path()), |
| '--sourcedir=@0@'.format(meson.current_source_dir()), |
| '--header', |
| diff --git a/thumbnailer/meson.build b/thumbnailer/meson.build |
| index 8c741e0..5a3b52a 100644 |
| --- a/thumbnailer/meson.build |
| +++ b/thumbnailer/meson.build |
| @@ -14,7 +14,27 @@ gdk_pixbuf_print_mime_types = executable('gdk-pixbuf-print-mime-types', |
| install: true, |
| dependencies: gdk_pixbuf_deps + [ gdkpixbuf_dep ]) |
| |
| -custom_target('thumbnailer', |
| +if meson.is_cross_build() |
| + custom_target('thumbnailer', |
| + input: 'gdk-pixbuf-thumbnailer.thumbnailer.in', |
| + output: 'gdk-pixbuf-thumbnailer.thumbnailer', |
| + command: [ |
| + gen_thumbnailer, |
| + '--printer=gdk-pixbuf-print-mime-types', |
| + '--pixdata=@0@'.format(gdk_pixbuf_pixdata.full_path()), |
| + '--loaders=@0@'.format(loaders_cache.full_path()), |
| + '--bindir=@0@'.format(gdk_pixbuf_bindir), |
| + '@INPUT@', |
| + '@OUTPUT@', |
| + ], |
| + depends: [ |
| + gdk_pixbuf_print_mime_types, |
| + gdk_pixbuf_pixdata, |
| + ], |
| + install: true, |
| + install_dir: join_paths(gdk_pixbuf_datadir, 'thumbnailers')) |
| +else |
| + custom_target('thumbnailer', |
| input: 'gdk-pixbuf-thumbnailer.thumbnailer.in', |
| output: 'gdk-pixbuf-thumbnailer.thumbnailer', |
| command: [ |
| @@ -33,3 +53,4 @@ custom_target('thumbnailer', |
| ], |
| install: true, |
| install_dir: join_paths(gdk_pixbuf_datadir, 'thumbnailers')) |
| +endif |