diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2019-07-13 08:54:17 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2019-07-19 00:17:29 +0200 |
commit | eb5aff8b767000477e926bd5fc1bc70e4198ccdb (patch) | |
tree | 21b51352de9a50126be5d7589eadb9bb81193c86 | |
parent | 3ef7b231782e3554217a61b4b04f947be76e7ca7 (diff) | |
download | meson-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.py | 26 |
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): |