[gdk-pixbuf] meson: Build pixbuf thumbnailer
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gdk-pixbuf] meson: Build pixbuf thumbnailer
- Date: Wed, 2 Aug 2017 11:55:42 +0000 (UTC)
commit 5571ecd6a82b3d56c4a107f2c2bda0c14d67cb6f
Author: Emmanuele Bassi <ebassi gnome org>
Date: Wed Aug 2 12:53:14 2017 +0100
meson: Build pixbuf thumbnailer
We need to go through an intermediate script in order to generate the
thumbnailer's desktop file.
meson.build | 2 +
thumbnailer/gen-thumbnailer.py | 43 ++++++++++++++++++++++++++++++++++++++++
thumbnailer/meson.build | 34 +++++++++++++++++++++++++++++++
3 files changed, 79 insertions(+), 0 deletions(-)
---
diff --git a/meson.build b/meson.build
index e5b9e50..77757be 100644
--- a/meson.build
+++ b/meson.build
@@ -42,6 +42,7 @@ libversion = '@0@.@1@.@2@'.format(soversion, current, revision)
# Paths
gdk_pixbuf_prefix = get_option('prefix')
gdk_pixbuf_libdir = join_paths(gdk_pixbuf_prefix, get_option('libdir'))
+gdk_pixbuf_bindir = join_paths(gdk_pixbuf_prefix, get_option('bindir'))
gdk_pixbuf_includedir = join_paths(gdk_pixbuf_prefix, get_option('includedir'))
gdk_pixbuf_datadir = join_paths(gdk_pixbuf_prefix, get_option('datadir'))
gdk_pixbuf_mandir = join_paths(gdk_pixbuf_prefix, get_option('mandir'))
@@ -294,6 +295,7 @@ endif
subdir('po')
subdir('tests')
+subdir('thumbnailer')
# Documentation
subdir('docs/reference/gdk-pixbuf')
diff --git a/thumbnailer/gen-thumbnailer.py b/thumbnailer/gen-thumbnailer.py
new file mode 100644
index 0000000..9994043
--- /dev/null
+++ b/thumbnailer/gen-thumbnailer.py
@@ -0,0 +1,43 @@
+#!/usr/bin/env python3
+
+# Ancillary wrapper around gdk-pixbuf-print-mime-types that sets up a
+# modified environment in order to use the tools that we just built
+# instead of the system ones
+
+import argparse
+import os
+import subprocess
+import sys
+
+argparser = argparse.ArgumentParser(description='Compile resources')
+argparser.add_argument('--printer', metavar='PATH', help='Path to gdk-pixbuf-print-mime-types')
+argparser.add_argument('--pixdata', metavar='PATH', help='Path to gdk-pixbuf-pixdata')
+argparser.add_argument('--loaders', metavar='PATH', help='Path to the loaders.cache file')
+argparser.add_argument('--bindir', metavar='PATH', help='Path to the source directory')
+argparser.add_argument('input', help='Template file')
+argparser.add_argument('output', help='Output file')
+
+args = argparser.parse_args()
+
+newenv = os.environ.copy()
+newenv['GDK_PIXBUF_PIXDATA'] = args.pixdata
+newenv['GDK_PIXBUF_MODULE_FILE'] = args.loaders
+
+cmd = args.printer
+
+mimetypes_out = subprocess.Popen(cmd, env=newenv, stdout=subprocess.PIPE).communicate()[0]
+if not mimetypes_out:
+ sys.exit(1)
+
+infile = open(args.input, 'r')
+outfile = open(args.output, 'w')
+
+for line in infile:
+ line = line.replace('@bindir@', args.bindir)
+ line = line.replace('@mimetypes@', mimetypes_out.decode('ascii'))
+ outfile.write(line)
+
+infile.close()
+outfile.close()
+
+sys.exit(0)
diff --git a/thumbnailer/meson.build b/thumbnailer/meson.build
new file mode 100644
index 0000000..6a2fd2a
--- /dev/null
+++ b/thumbnailer/meson.build
@@ -0,0 +1,34 @@
+executable('gdk-pixbuf-thumbnailer',
+ [ 'gdk-pixbuf-thumbnailer.c', 'gnome-thumbnailer-skeleton.c' ],
+ c_args: common_cflags + [
+ '-DTHUMBNAILER_RETURNS_PIXBUF',
+ '-DTHUMBNAILER_USAGE="Thumbnail images"',
+ ],
+ dependencies: gdk_pixbuf_deps + [ gdkpixbuf_dep ],
+ install: true)
+
+gdk_pixbuf_print_mime_types = executable('gdk-pixbuf-print-mime-types',
+ 'gdk-pixbuf-print-mime-types.c',
+ c_args: common_cflags,
+ dependencies: gdk_pixbuf_deps + [ gdkpixbuf_dep ])
+
+gen_thumbnailer = find_program('gen-thumbnailer.py')
+custom_target('thumbnailer',
+ input: 'gdk-pixbuf-thumbnailer.thumbnailer.in',
+ output: 'gdk-pixbuf-thumbnailer.thumbnailer',
+ command: [
+ gen_thumbnailer,
+ '--printer=@0@'.format(gdk_pixbuf_print_mime_types.full_path()),
+ '--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,
+ loaders_cache,
+ ],
+ install: true,
+ install_dir: join_paths(gdk_pixbuf_datadir, 'thumbnailers'))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]