aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/backend/vs2010backend.py9
-rw-r--r--mesonbuild/interpreter.py12
2 files changed, 6 insertions, 15 deletions
diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py
index 540dd04..d262e6b 100644
--- a/mesonbuild/backend/vs2010backend.py
+++ b/mesonbuild/backend/vs2010backend.py
@@ -495,7 +495,7 @@ class Vs2010Backend(backends.Backend):
extra_args[l] += args
for l, args in target.extra_args.items():
if l in extra_args:
- extra_args[l] += args
+ extra_args[l] += compiler.unix_compile_flags_to_native(args)
general_args = compiler.get_buildtype_args(self.buildtype).copy()
# FIXME all the internal flags of VS (optimization etc) are represented
# by their own XML elements. In theory we should split all flags to those
@@ -575,11 +575,8 @@ class Vs2010Backend(backends.Backend):
extra_link_args = compiler.get_option_link_args(self.environment.coredata.compiler_options)
extra_link_args += compiler.get_buildtype_linker_args(self.buildtype)
for l in self.environment.coredata.external_link_args.values():
- for a in l:
- extra_link_args.append(a)
- for l in target.link_args:
- for a in l:
- extra_link_args.append(a)
+ extra_link_args += compiler.unix_link_flags_to_native(l)
+ extra_link_args += compiler.unix_link_flags_to_native(target.link_args)
if len(extra_link_args) > 0:
extra_link_args.append('%(AdditionalOptions)')
ET.SubElement(link, "AdditionalOptions").text = ' '.join(extra_link_args)
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index a779e99..7acff53 100644
--- a/mesonbuild/interpreter.py
+++ b/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):