From 077747f428998150f366a558b685b0393f5237fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Eric=20Janouch?= Date: Thu, 6 Jan 2022 11:28:56 +0100 Subject: Improve desktop file regeneration --- meson.build | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) (limited to 'meson.build') diff --git a/meson.build b/meson.build index 7b0762c..c3d5a86 100644 --- a/meson.build +++ b/meson.build @@ -83,20 +83,25 @@ if gdkpixbuf.found() dependencies : [dependencies, gdkpixbuf]) endif -install_data('fiv.desktop', - install_dir : get_option('datadir') + '/applications') +# XXX: With gdk-pixbuf, this even dependens on currently installed modules. +if meson.is_cross_build() + install_data('fiv.desktop', + install_dir : get_option('datadir') + '/applications') +else + # XXX: The exe path may not contain spaces--quoting is a bitch in Meson. + desktop = custom_target('desktop', + output : 'fiv.desktop', + input : 'fiv.desktop', + command : ['sh', '-c', '''awk '/^MimeType=/ { $0 = "MimeType="; + while ((exe " --list-supported-media-types" | getline type) > 0) + $0 = $0 type ";" } 1' "exe=$1" "$2"''', 'sh', exe, '@INPUT@'], + capture : true, + install : true, + install_dir : get_option('datadir') + '/applications', + ) +endif + install_data('fiv-browse.desktop', install_dir : get_option('datadir') + '/applications') install_data('fiv.svg', install_dir : get_option('datadir') + '/icons/hicolor/scalable/apps') - -# TODO(p): Replace this with custom_target(). -if not meson.is_cross_build() - meson.add_install_script( - 'sh', '-c', '''sed -i "/^MimeType=/{c \\ -MimeType=$($1 --list-supported-media-types | tr "\\012" ";") -}" "$MESON_INSTALL_DESTDIR_PREFIX/$2"''', - 'sh', - exe.full_path(), - get_option('datadir') + '/applications/fiv.desktop') -endif -- cgit v1.2.3