diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2018-10-01 20:31:48 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2018-10-05 00:48:22 +0300 |
commit | 2ff69b20df0864182fdf2b146d29dc67d0cb9a5b (patch) | |
tree | 9484afc57816b7a801fd44fd7164c4e68695b669 | |
parent | 1c6b8b72cb2b55a65d0a0784bb16acef58dc66c4 (diff) | |
download | meson-2ff69b20df0864182fdf2b146d29dc67d0cb9a5b.zip meson-2ff69b20df0864182fdf2b146d29dc67d0cb9a5b.tar.gz meson-2ff69b20df0864182fdf2b146d29dc67d0cb9a5b.tar.bz2 |
Fix handling generated .desktop files. Closes #4304.
-rw-r--r-- | mesonbuild/modules/i18n.py | 22 | ||||
-rw-r--r-- | test cases/frameworks/6 gettext/generated/desktopgenerator.py | 9 | ||||
-rw-r--r-- | test cases/frameworks/6 gettext/generated/meson.build | 14 | ||||
-rw-r--r-- | test cases/frameworks/6 gettext/generated/something.desktop.in.in | 15 | ||||
-rw-r--r-- | test cases/frameworks/6 gettext/meson.build | 1 |
5 files changed, 51 insertions, 10 deletions
diff --git a/mesonbuild/modules/i18n.py b/mesonbuild/modules/i18n.py index 0fc052b..8b5e181 100644 --- a/mesonbuild/modules/i18n.py +++ b/mesonbuild/modules/i18n.py @@ -82,17 +82,19 @@ class I18nModule(ExtensionModule): kwargs['command'] = command inputfile = kwargs['input'] - if isinstance(inputfile, str): - inputfile = mesonlib.File.from_source_file(state.environment.source_dir, + if hasattr(inputfile, 'held_object'): + ct = build.CustomTarget(kwargs['output'] + '_merge', state.subdir, state.subproject, kwargs) + else: + if isinstance(inputfile, str): + inputfile = mesonlib.File.from_source_file(state.environment.source_dir, state.subdir, inputfile) - output = kwargs['output'] - ifile_abs = inputfile.absolute_path(state.environment.source_dir, - state.environment.build_dir) - values = mesonlib.get_filenames_templates_dict([ifile_abs], None) - outputs = mesonlib.substitute_values([output], values) - output = outputs[0] - - ct = build.CustomTarget(output + '_' + state.subdir + '_merge', state.subdir, state.subproject, kwargs) + output = kwargs['output'] + ifile_abs = inputfile.absolute_path(state.environment.source_dir, + state.environment.build_dir) + values = mesonlib.get_filenames_templates_dict([ifile_abs], None) + outputs = mesonlib.substitute_values([output], values) + output = outputs[0] + ct = build.CustomTarget(output + '_' + state.subdir + '_merge', state.subdir, state.subproject, kwargs) return ModuleReturnValue(ct, [ct]) @FeatureNewKwargs('i18n.gettext', '0.37.0', ['preset']) diff --git a/test cases/frameworks/6 gettext/generated/desktopgenerator.py b/test cases/frameworks/6 gettext/generated/desktopgenerator.py new file mode 100644 index 0000000..150ed04 --- /dev/null +++ b/test cases/frameworks/6 gettext/generated/desktopgenerator.py @@ -0,0 +1,9 @@ +#!/usr/bin/env python3 + +import sys, shutil + +ifile = sys.argv[1] +ofile = sys.argv[2] + +os.unlink(ofile) +shutil.copy(ifile, ofile) diff --git a/test cases/frameworks/6 gettext/generated/meson.build b/test cases/frameworks/6 gettext/generated/meson.build new file mode 100644 index 0000000..02e61ba --- /dev/null +++ b/test cases/frameworks/6 gettext/generated/meson.build @@ -0,0 +1,14 @@ +dgen = find_program('desktopgenerator.py') + +desktop_in_file = custom_target('something.desktop.in', + input : ['something.desktop.in.in'], + output : 'something.desktop.in', + command : [dgen, '@INPUT@', '@OUTPUT@'], +) + +i18n.merge_file( + input : desktop_in_file, + output : 'something.desktop', + type : 'desktop', + po_dir : '../po', +) diff --git a/test cases/frameworks/6 gettext/generated/something.desktop.in.in b/test cases/frameworks/6 gettext/generated/something.desktop.in.in new file mode 100644 index 0000000..e2094fd --- /dev/null +++ b/test cases/frameworks/6 gettext/generated/something.desktop.in.in @@ -0,0 +1,15 @@ +[Desktop Entry] +Name=Something doer +Comment=Do something +# Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! +Keywords=zip;tar;extract;unpack; +TryExec=file-roller +Exec=file-roller %U +StartupNotify=true +Terminal=false +Type=Application +# Translators: Do NOT translate or transliterate this text (this is an icon file name)! +Icon=something +Categories=GTK;GNOME;Utility +X-GNOME-DocPath=file-roller/file-roller.xml +X-GNOME-UsesNotifications=true diff --git a/test cases/frameworks/6 gettext/meson.build b/test cases/frameworks/6 gettext/meson.build index 9b84856..09ef982 100644 --- a/test cases/frameworks/6 gettext/meson.build +++ b/test cases/frameworks/6 gettext/meson.build @@ -15,3 +15,4 @@ subdir('po') subdir('src') subdir('data') subdir('data2') +subdir('generated') |