summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/modules/i18n.py21
1 files changed, 12 insertions, 9 deletions
diff --git a/mesonbuild/modules/i18n.py b/mesonbuild/modules/i18n.py
index 151fd08a0..3052f73a4 100644
--- a/mesonbuild/modules/i18n.py
+++ b/mesonbuild/modules/i18n.py
@@ -141,10 +141,6 @@ class I18nModule(ExtensionModule):
}
@staticmethod
- def nogettext_warning(location: BaseNode) -> None:
- mlog.warning('Gettext not found, all translation targets will be ignored.', once=True, location=location)
-
- @staticmethod
def _get_data_dirs(state: 'ModuleState', dirs: T.Iterable[str]) -> T.List[str]:
"""Returns source directories of relative paths"""
src_dir = path.join(state.environment.get_source_dir(), state.subdir)
@@ -223,13 +219,18 @@ class I18nModule(ExtensionModule):
),
)
def gettext(self, state: 'ModuleState', args: T.Tuple[str], kwargs: 'Gettext') -> ModuleReturnValue:
- for tool in ['msgfmt', 'msginit', 'msgmerge', 'xgettext']:
+ for tool, strict in [('msgfmt', True), ('msginit', False), ('msgmerge', False), ('xgettext', False)]:
if self.tools[tool] is None:
self.tools[tool] = state.find_program(tool, required=False, for_machine=mesonlib.MachineChoice.BUILD)
# still not found?
if not self.tools[tool].found():
- self.nogettext_warning(state.current_node)
- return ModuleReturnValue(None, [])
+ if strict:
+ mlog.warning('Gettext not found, all translation (po) targets will be ignored.',
+ once=True, location=state.current_node)
+ return ModuleReturnValue(None, [])
+ else:
+ mlog.warning(f'{tool!r} not found, maintainer targets will not work',
+ once=True, fatal=False, location=state.current_node)
packagename = args[0]
pkg_arg = f'--pkgname={packagename}'
@@ -258,7 +259,8 @@ class I18nModule(ExtensionModule):
potargs.append(datadirs)
if extra_arg:
potargs.append(extra_arg)
- potargs.append('--xgettext=' + self.tools['xgettext'].get_path())
+ if self.tools['xgettext'].found():
+ potargs.append('--xgettext=' + self.tools['xgettext'].get_path())
pottarget = build.RunTarget(packagename + '-pot', potargs, [], state.subdir, state.subproject,
state.environment, default_env=False)
targets.append(pottarget)
@@ -305,7 +307,8 @@ class I18nModule(ExtensionModule):
if extra_arg:
updatepoargs.append(extra_arg)
for tool in ['msginit', 'msgmerge']:
- updatepoargs.append(f'--{tool}=' + self.tools[tool].get_path())
+ if self.tools[tool].found():
+ updatepoargs.append(f'--{tool}=' + self.tools[tool].get_path())
updatepotarget = build.RunTarget(packagename + '-update-po', updatepoargs, [], state.subdir, state.subproject,
state.environment, default_env=False)
targets.append(updatepotarget)