aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/backend/vs2010backend.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py
index ae4cd33..36b7d57 100644
--- a/mesonbuild/backend/vs2010backend.py
+++ b/mesonbuild/backend/vs2010backend.py
@@ -14,6 +14,7 @@
import os, sys
import pickle
+import re
from mesonbuild import compilers
from mesonbuild.build import BuildTarget
@@ -376,6 +377,10 @@ class Vs2010Backend(backends.Backend):
lang = Vs2010Backend.lang_from_source_file(source_file)
ET.SubElement(parent_node, "AdditionalOptions").text = ' '.join(extra_args[lang]) + ' %(AdditionalOptions)'
+ @classmethod
+ def quote_define_cmdline(cls, arg):
+ return re.sub(r'^([-/])D(.*?)="(.*)"$', r'\1D\2=\"\3\"', arg)
+
def gen_vcxproj(self, target, ofname, guid, compiler):
mlog.debug('Generating vcxproj %s.' % target.name)
entrypoint = 'WinMainCRTStartup'
@@ -475,6 +480,9 @@ class Vs2010Backend(backends.Backend):
except AttributeError:
pass
+ for l, args in extra_args.items():
+ extra_args[l] = [Vs2010Backend.quote_define_cmdline(x) for x in args]
+
languages += gen_langs
has_language_specific_args = any(l != extra_args['c'] for l in extra_args.values())
additional_options_set = False