summaryrefslogtreecommitdiffstats
path: root/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-and-pixdata-cross-compile-fa.patch
blob: 2aa91647506e806bc2a6a034bb64277d781ad75e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
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