diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 138f1ae03233..cce5888c8805 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -1271,10 +1271,7 @@ def process_kwargs(self, kwargs: BuildTargetKeywordArguments) -> None: self.pch['c'] = kwargs.get('c_pch') self.pch['cpp'] = kwargs.get('cpp_pch') - self.link_args = extract_as_list(kwargs, 'link_args') - for i in self.link_args: - if not isinstance(i, str): - raise InvalidArguments('Link_args arguments must be strings.') + self.link_args = kwargs.get('link_args', []) for l in self.link_args: if '-Wl,-rpath' in l or l.startswith('-rpath'): mlog.warning(textwrap.dedent('''\ diff --git a/mesonbuild/interpreter/type_checking.py b/mesonbuild/interpreter/type_checking.py index 28280a996538..e80ed7c6d75b 100644 --- a/mesonbuild/interpreter/type_checking.py +++ b/mesonbuild/interpreter/type_checking.py @@ -740,6 +740,12 @@ def _pch_convertor(args: T.List[str]) -> T.Optional[T.Tuple[str, T.Optional[str] since='0.48.0', ), KwargInfo('install_rpath', str, default=''), + KwargInfo( + 'link_args', + ContainerTypeInfo(list, str), + default=[], + listify=True, + ), KwargInfo( 'link_depends', ContainerTypeInfo(list, (str, File, CustomTarget, CustomTargetIndex, BuildTarget)),