diff options
author | Mathieu Duponchelle <mathieu@centricular.com> | 2018-06-23 03:53:05 +0200 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2018-06-25 16:12:35 +0000 |
commit | d784b5772a55eadb88034bd1992adeaddfba28d0 (patch) | |
tree | 474ff97763714d0d452bb9fdd19670d4cea71146 | |
parent | 87871e7b95d4cc89627971f316bdeffebde048e5 (diff) | |
download | meson-d784b5772a55eadb88034bd1992adeaddfba28d0.zip meson-d784b5772a55eadb88034bd1992adeaddfba28d0.tar.gz meson-d784b5772a55eadb88034bd1992adeaddfba28d0.tar.bz2 |
ArLinker: Use response files on Windows
ninja chokes when building FFmpeg's static libraries, as the
command line can be larger than 32000.
This was disabled on purpose in #1649, but the rsp syntax was
different: this commit makes it so the options and output file
are still passed on the command line, gcc-ar didn't work
otherwise.
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 8 | ||||
-rw-r--r-- | mesonbuild/linkers.py | 2 |
2 files changed, 3 insertions, 7 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 847e749..94eaa4f 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -1526,14 +1526,10 @@ int dummy; if static_linker is None: return rule = 'rule STATIC%s_LINKER\n' % crstr - # We don't use @file.rsp on Windows with ArLinker because llvm-ar and - # gcc-ar blindly pass the --plugin argument to `ar` and you cannot pass - # options as arguments while using the @file.rsp syntax. - # See: https://github.com/mesonbuild/meson/issues/1646 if static_linker.can_linker_accept_rsp(): - command_template = ''' command = {executable} @$out.rsp + command_template = ''' command = {executable} $LINK_ARGS {output_args} @$out.rsp rspfile = $out.rsp - rspfile_content = $LINK_ARGS {output_args} $in + rspfile_content = $in ''' else: command_template = ' command = {executable} $LINK_ARGS {output_args} $in\n' diff --git a/mesonbuild/linkers.py b/mesonbuild/linkers.py index cb07c5e..7e89de5 100644 --- a/mesonbuild/linkers.py +++ b/mesonbuild/linkers.py @@ -88,7 +88,7 @@ class ArLinker(StaticLinker): self.std_args = ['-csr'] def can_linker_accept_rsp(self): - return False + return mesonlib.is_windows() def build_rpath_args(self, build_dir, from_dir, rpath_paths, build_rpath, install_rpath): return [] |