aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathieu Duponchelle <mathieu@centricular.com>2018-06-23 03:53:05 +0200
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2018-06-25 16:12:35 +0000
commitd784b5772a55eadb88034bd1992adeaddfba28d0 (patch)
tree474ff97763714d0d452bb9fdd19670d4cea71146
parent87871e7b95d4cc89627971f316bdeffebde048e5 (diff)
downloadmeson-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.py8
-rw-r--r--mesonbuild/linkers.py2
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 []