diff options
-rw-r--r-- | meson.build | 31 |
1 files changed, 18 insertions, 13 deletions
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 |