diff options
Diffstat (limited to 'thumbnailer')
-rw-r--r-- | thumbnailer/gen-thumbnailer.py | 43 | ||||
-rw-r--r-- | thumbnailer/meson.build | 34 |
2 files changed, 77 insertions, 0 deletions
diff --git a/thumbnailer/gen-thumbnailer.py b/thumbnailer/gen-thumbnailer.py new file mode 100644 index 000000000..9994043f9 --- /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 000000000..6a2fd2ac5 --- /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')) |