aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2019-07-13 08:54:17 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2019-07-19 00:17:29 +0200
commiteb5aff8b767000477e926bd5fc1bc70e4198ccdb (patch)
tree21b51352de9a50126be5d7589eadb9bb81193c86
parent3ef7b231782e3554217a61b4b04f947be76e7ca7 (diff)
downloadmeson-eb5aff8b767000477e926bd5fc1bc70e4198ccdb.zip
meson-eb5aff8b767000477e926bd5fc1bc70e4198ccdb.tar.gz
meson-eb5aff8b767000477e926bd5fc1bc70e4198ccdb.tar.bz2
vs2010backend: always serialize executables for generators
Do the same as for custom targets.
-rw-r--r--mesonbuild/backend/vs2010backend.py26
1 files changed, 14 insertions, 12 deletions
diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py
index 716dc27..054fae0 100644
--- a/mesonbuild/backend/vs2010backend.py
+++ b/mesonbuild/backend/vs2010backend.py
@@ -143,21 +143,23 @@ class Vs2010Backend(backends.Backend):
for x in args]
args = [x.replace('\\', '/') for x in args]
cmd = exe_arr + self.replace_extra_args(args, genlist)
- if generator.capture:
- cmd = self.as_meson_exe_cmdline(
- 'generator ' + cmd[0],
- cmd[0],
- cmd[1:],
- self.environment.get_build_dir(),
- capture=outfiles[0]
- )
- abs_pdir = os.path.join(self.environment.get_build_dir(), self.get_target_dir(target))
- os.makedirs(abs_pdir, exist_ok=True)
+ # Always use a wrapper because MSBuild eats random characters when
+ # there are many arguments.
+ tdir_abs = os.path.join(self.environment.get_build_dir(), self.get_target_dir(target))
+ cmd = self.as_meson_exe_cmdline(
+ 'generator ' + cmd[0],
+ cmd[0],
+ cmd[1:],
+ tdir_abs,
+ capture=outfiles[0] if generator.capture else None
+ )
+ deps = cmd[-1:] + deps
+ abs_pdir = os.path.join(self.environment.get_build_dir(), self.get_target_dir(target))
+ os.makedirs(abs_pdir, exist_ok=True)
cbs = ET.SubElement(idgroup, 'CustomBuild', Include=infilename)
ET.SubElement(cbs, 'Command').text = ' '.join(self.quote_arguments(cmd))
ET.SubElement(cbs, 'Outputs').text = ';'.join(outfiles)
- if deps:
- ET.SubElement(cbs, 'AdditionalInputs').text = ';'.join(deps)
+ ET.SubElement(cbs, 'AdditionalInputs').text = ';'.join(deps)
return generator_output_files, custom_target_output_files, custom_target_include_dirs
def generate(self, interp):