Use add_target() for adding targets returned from module functions

Without this, the target isn't added to self.coredata.target_guids and
the VS backends fail to parse the list of targets
pull/602/head
Nirbheek Chauhan 9 years ago
parent 68dbbeb78f
commit 9e5a2c5e26
  1. 12
      mesonbuild/interpreter.py

@ -1068,25 +1068,19 @@ class Interpreter():
outvalues = []
for v in invalues:
if isinstance(v, build.CustomTarget):
if v.name in self.build.targets:
raise InterpreterException('Tried to create target %s which already exists.' % v.name)
self.build.targets[v.name] = v
self.add_target(v.name, v)
outvalues.append(CustomTargetHolder(v))
elif isinstance(v, int) or isinstance(v, str):
outvalues.append(v)
elif isinstance(v, build.Executable):
if v.name in self.build.targets:
raise InterpreterException('Tried to create target %s which already exists.' % v.name)
self.build.targets[v.name] = v
self.add_target(v.name, v)
outvalues.append(ExecutableHolder(v))
elif isinstance(v, list):
outvalues.append(self.module_method_callback(v))
elif isinstance(v, build.GeneratedList):
outvalues.append(GeneratedListHolder(v))
elif isinstance(v, build.RunTarget):
if v.name in self.build.targets:
raise InterpreterException('Tried to create target %s which already exists.' % v.name)
self.build.targets[v.name] = v
self.add_target(v.name, v)
elif isinstance(v, build.InstallScript):
self.build.install_scripts.append(v)
elif isinstance(v, build.Data):

Loading…
Cancel
Save