ninjabackend: Remove useless call to replace_paths()

Replacements are already done by eval_custom_target_command() and must
be done BEFORE calling as_meson_exe_cmdline() anyway. replace_paths() is
still used by generators.

Make eval_custom_target_command() more readable by handling error in the
final else case instead of in the middle of elif.
pull/8305/head
Xavier Claessens 4 years ago
parent b52794b24b
commit f63e168685
  1. 8
      mesonbuild/backend/backends.py
  2. 1
      mesonbuild/backend/ninjabackend.py

@ -1124,10 +1124,7 @@ class Backend:
i = os.path.join(self.environment.get_build_dir(), i)
# FIXME: str types are blindly added ignoring 'target.absolute_paths'
# because we can't know if they refer to a file or just a string
elif not isinstance(i, str):
err_msg = 'Argument {0} is of unknown type {1}'
raise RuntimeError(err_msg.format(str(i), str(type(i))))
else:
elif isinstance(i, str):
if '@SOURCE_ROOT@' in i:
i = i.replace('@SOURCE_ROOT@', source_root)
if '@BUILD_ROOT@' in i:
@ -1157,6 +1154,9 @@ class Backend:
else:
lead_dir = self.environment.get_build_dir()
i = i.replace(source, os.path.join(lead_dir, outdir))
else:
err_msg = 'Argument {0} is of unknown type {1}'
raise RuntimeError(err_msg.format(str(i), str(type(i))))
cmd.append(i)
# Substitute the rest of the template strings
values = mesonlib.get_filenames_templates_dict(inputs, outputs)

@ -974,7 +974,6 @@ int dummy;
elem.add_item('DEPFILE', rel_dfile)
if target.console:
elem.add_item('pool', 'console')
cmd = self.replace_paths(target, cmd)
elem.add_item('COMMAND', cmd)
elem.add_item('description', desc.format(target.name, cmd_type))
self.add_build(elem)

Loading…
Cancel
Save