aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/build.py
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2022-03-15 12:24:33 -0400
committerXavier Claessens <xclaesse@gmail.com>2022-03-23 15:44:01 -0400
commiteccdbfe3d1b0fb11f99f44f67f0f66731d52030a (patch)
tree10ef3290ee1ca25d6e8a281e846cbfa80a9095f3 /mesonbuild/build.py
parentceb6e26ff100464083581ca64816474d1339bea5 (diff)
downloadmeson-eccdbfe3d1b0fb11f99f44f67f0f66731d52030a.zip
meson-eccdbfe3d1b0fb11f99f44f67f0f66731d52030a.tar.gz
meson-eccdbfe3d1b0fb11f99f44f67f0f66731d52030a.tar.bz2
Make sure we support "<lang>_args" kwarg for all languages
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r--mesonbuild/build.py33
1 files changed, 8 insertions, 25 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index 43a6df5..f366485 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -39,7 +39,7 @@ from .mesonlib import (
MesonBugException
)
from .compilers import (
- Compiler, is_object, clink_langs, sort_clink, lang_suffixes,
+ Compiler, is_object, clink_langs, sort_clink, lang_suffixes, all_languages,
is_known_suffix, detect_static_linker, detect_compiler_for
)
from .linkers import StaticLinker
@@ -59,23 +59,12 @@ if T.TYPE_CHECKING:
pch_kwargs = {'c_pch', 'cpp_pch'}
-lang_arg_kwargs = {
- 'c_args',
- 'cpp_args',
- 'cuda_args',
- 'd_args',
+lang_arg_kwargs = {f'{lang}_args' for lang in all_languages}
+lang_arg_kwargs |= {
'd_import_dirs',
'd_unittest',
'd_module_versions',
'd_debug',
- 'fortran_args',
- 'java_args',
- 'objc_args',
- 'objcpp_args',
- 'rust_args',
- 'vala_args',
- 'cs_args',
- 'cython_args',
}
vala_kwargs = {'vala_header', 'vala_gir', 'vala_vapi'}
@@ -1141,24 +1130,18 @@ class BuildTarget(Target):
for linktarget in lwhole:
self.link_whole(linktarget)
- c_pchlist, cpp_pchlist, clist, cpplist, cudalist, cslist, valalist, objclist, objcpplist, fortranlist, rustlist \
- = (extract_as_list(kwargs, c) for c in ['c_pch', 'cpp_pch', 'c_args', 'cpp_args', 'cuda_args', 'cs_args', 'vala_args', 'objc_args', 'objcpp_args', 'fortran_args', 'rust_args'])
+ for lang in all_languages:
+ lang_args = extract_as_list(kwargs, f'{lang}_args')
+ self.add_compiler_args(lang, lang_args)
- self.add_pch('c', c_pchlist)
- self.add_pch('cpp', cpp_pchlist)
- compiler_args = {'c': clist, 'cpp': cpplist, 'cuda': cudalist, 'cs': cslist, 'vala': valalist, 'objc': objclist, 'objcpp': objcpplist,
- 'fortran': fortranlist, 'rust': rustlist
- }
- for key, value in compiler_args.items():
- self.add_compiler_args(key, value)
+ self.add_pch('c', extract_as_list(kwargs, 'c_pch'))
+ self.add_pch('cpp', extract_as_list(kwargs, 'cpp_pch'))
if not isinstance(self, Executable) or 'export_dynamic' in kwargs:
self.vala_header = kwargs.get('vala_header', self.name + '.h')
self.vala_vapi = kwargs.get('vala_vapi', self.name + '.vapi')
self.vala_gir = kwargs.get('vala_gir', None)
- dlist = stringlistify(kwargs.get('d_args', []))
- self.add_compiler_args('d', dlist)
dfeatures = defaultdict(list)
dfeature_unittest = kwargs.get('d_unittest', False)
if dfeature_unittest: