summaryrefslogtreecommitdiff
path: root/mesonbuild/compilers
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2024-07-12 20:57:04 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2024-07-17 18:37:51 +0300
commit61c742fae9ec74e81b3bb3caf815cf49992fb93c (patch)
tree18b604a698220c713cba3b443c279c7a65f4f6dc /mesonbuild/compilers
parentde8e3d65e06f91f0927e84dbf215a298b73590b8 (diff)
downloadmeson-61c742fae9ec74e81b3bb3caf815cf49992fb93c.tar.gz
Remove language (AKA compiler) type from OptionKey.
Diffstat (limited to 'mesonbuild/compilers')
-rw-r--r--mesonbuild/compilers/c.py2
-rw-r--r--mesonbuild/compilers/compilers.py8
-rw-r--r--mesonbuild/compilers/cpp.py16
-rw-r--r--mesonbuild/compilers/cuda.py2
-rw-r--r--mesonbuild/compilers/mixins/elbrus.py2
-rw-r--r--mesonbuild/compilers/mixins/emscripten.py4
-rw-r--r--mesonbuild/compilers/objc.py4
-rw-r--r--mesonbuild/compilers/objcpp.py4
8 files changed, 23 insertions, 19 deletions
diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py
index bfadcdb35..819ef8bb8 100644
--- a/mesonbuild/compilers/c.py
+++ b/mesonbuild/compilers/c.py
@@ -310,7 +310,7 @@ class GnuCCompiler(GnuCompiler, CCompiler):
self.update_options(
opts,
self.create_option(options.UserArrayOption,
- key.evolve('winlibs'),
+ key.evolve('c_winlibs'),
'Standard Win libraries to link against',
gnu_winlibs),
)
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index 247d7e1c0..7057fc2a2 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -1355,7 +1355,7 @@ class Compiler(HoldableObject, metaclass=abc.ABCMeta):
raise EnvironmentException(f'{self.get_id()} does not support preprocessor')
def form_compileropt_key(self, basename: str) -> OptionKey:
- return OptionKey(basename, machine=self.for_machine, lang=self.language)
+ return OptionKey(f'{self.language}_{basename}', machine=self.for_machine)
def get_global_options(lang: str,
comp: T.Type[Compiler],
@@ -1363,9 +1363,9 @@ def get_global_options(lang: str,
env: 'Environment') -> 'dict[OptionKey, options.UserOption[Any]]':
"""Retrieve options that apply to all compilers for a given language."""
description = f'Extra arguments passed to the {lang}'
- argkey = OptionKey('args', lang=lang, machine=for_machine)
- largkey = argkey.evolve('link_args')
- envkey = argkey.evolve('env_args')
+ argkey = OptionKey(f'{lang}_args', machine=for_machine)
+ largkey = argkey.evolve(f'{lang}_link_args')
+ envkey = argkey.evolve(f'{lang}_env_args')
comp_key = argkey if argkey in env.options else envkey
diff --git a/mesonbuild/compilers/cpp.py b/mesonbuild/compilers/cpp.py
index ed840e6d5..1f0952455 100644
--- a/mesonbuild/compilers/cpp.py
+++ b/mesonbuild/compilers/cpp.py
@@ -475,7 +475,7 @@ class GnuCPPCompiler(_StdCPPLibMixin, GnuCompiler, CPPCompiler):
self.update_options(
opts,
self.create_option(options.UserArrayOption,
- key.evolve('winlibs'),
+ key.evolve('cpp_winlibs'),
'Standard Win libraries to link against',
gnu_winlibs),
)
@@ -483,17 +483,21 @@ class GnuCPPCompiler(_StdCPPLibMixin, GnuCompiler, CPPCompiler):
def get_option_compile_args(self, options: 'KeyedOptionDictType') -> T.List[str]:
args: T.List[str] = []
- key = self.form_compileropt_key('std')
- std = options.get_value(key)
+ stdkey = self.form_compileropt_key('std')
+ ehkey = self.form_compileropt_key('eh')
+ rttikey = self.form_compileropt_key('rtti')
+ debugstlkey = self.form_compileropt_key('debugstl')
+
+ std = options.get_value(stdkey)
if std != 'none':
args.append(self._find_best_cpp_std(std))
- non_msvc_eh_options(options.get_value(key.evolve('eh')), args)
+ non_msvc_eh_options(options.get_value(ehkey), args)
- if not options.get_value(key.evolve('rtti')):
+ if not options.get_value(rttikey):
args.append('-fno-rtti')
- if options.get_value(key.evolve('debugstl')):
+ if options.get_value(debugstlkey):
args.append('-D_GLIBCXX_DEBUG=1')
return args
diff --git a/mesonbuild/compilers/cuda.py b/mesonbuild/compilers/cuda.py
index 2fd6d17c9..090c1ab94 100644
--- a/mesonbuild/compilers/cuda.py
+++ b/mesonbuild/compilers/cuda.py
@@ -664,7 +664,7 @@ class CudaCompiler(Compiler):
# We must strip the -std option from the host compiler option set, as NVCC has
# its own -std flag that may not agree with the host compiler's.
host_options = {key: master_options.get(key, opt) for key, opt in self.host_compiler.get_options().items()}
- std_key = OptionKey('std', machine=self.for_machine, lang=self.host_compiler.language)
+ std_key = OptionKey(f'{self.host_compiler.language}_std', machine=self.for_machine)
overrides = {std_key: 'none'}
# To shut up mypy.
return coredata.OptionsView(host_options, overrides=overrides)
diff --git a/mesonbuild/compilers/mixins/elbrus.py b/mesonbuild/compilers/mixins/elbrus.py
index 7f853f221..66f419cf0 100644
--- a/mesonbuild/compilers/mixins/elbrus.py
+++ b/mesonbuild/compilers/mixins/elbrus.py
@@ -85,7 +85,7 @@ class ElbrusCompiler(GnuLikeCompiler):
def get_option_compile_args(self, options: 'KeyedOptionDictType') -> T.List[str]:
args: T.List[str] = []
- std = options.get_value(OptionKey('std', lang=self.language, machine=self.for_machine))
+ std = options.get_value(OptionKey(f'{self.language}_std', machine=self.for_machine))
if std != 'none':
args.append('-std=' + std)
return args
diff --git a/mesonbuild/compilers/mixins/emscripten.py b/mesonbuild/compilers/mixins/emscripten.py
index f8d156344..33b6134a3 100644
--- a/mesonbuild/compilers/mixins/emscripten.py
+++ b/mesonbuild/compilers/mixins/emscripten.py
@@ -51,7 +51,7 @@ class EmscriptenMixin(Compiler):
def thread_link_flags(self, env: 'Environment') -> T.List[str]:
args = ['-pthread']
- count: int = env.coredata.optstore.get_value(OptionKey('thread_count', lang=self.language, machine=self.for_machine))
+ count: int = env.coredata.optstore.get_value(OptionKey(f'{self.language}_thread_count', machine=self.for_machine))
if count:
args.append(f'-sPTHREAD_POOL_SIZE={count}')
return args
@@ -61,7 +61,7 @@ class EmscriptenMixin(Compiler):
super().get_options(),
self.create_option(
options.UserIntegerOption,
- OptionKey('thread_count', machine=self.for_machine, lang=self.language),
+ OptionKey(f'{self.language}_thread_count', machine=self.for_machine),
'Number of threads to use in web assembly, set to 0 to disable',
(0, None, 4), # Default was picked at random
),
diff --git a/mesonbuild/compilers/objc.py b/mesonbuild/compilers/objc.py
index 7846f04f4..37958d8a0 100644
--- a/mesonbuild/compilers/objc.py
+++ b/mesonbuild/compilers/objc.py
@@ -82,7 +82,7 @@ class ClangObjCCompiler(ClangCompiler, ObjCCompiler):
return self.update_options(
super().get_options(),
self.create_option(options.UserComboOption,
- OptionKey('std', machine=self.for_machine, lang='c'),
+ OptionKey('c_std', machine=self.for_machine),
'C language standard to use',
['none', 'c89', 'c99', 'c11', 'c17', 'gnu89', 'gnu99', 'gnu11', 'gnu17'],
'none'),
@@ -90,7 +90,7 @@ class ClangObjCCompiler(ClangCompiler, ObjCCompiler):
def get_option_compile_args(self, options: 'coredata.KeyedOptionDictType') -> T.List[str]:
args = []
- std = options.get_value(OptionKey('std', machine=self.for_machine, lang='c'))
+ std = options.get_value(OptionKey('c_std', machine=self.for_machine))
if std != 'none':
args.append('-std=' + std)
return args
diff --git a/mesonbuild/compilers/objcpp.py b/mesonbuild/compilers/objcpp.py
index af10c8389..6388d41c3 100644
--- a/mesonbuild/compilers/objcpp.py
+++ b/mesonbuild/compilers/objcpp.py
@@ -82,7 +82,7 @@ class ClangObjCPPCompiler(ClangCompiler, ObjCPPCompiler):
return self.update_options(
super().get_options(),
self.create_option(options.UserComboOption,
- OptionKey('std', machine=self.for_machine, lang='cpp'),
+ OptionKey('cpp_std', machine=self.for_machine),
'C++ language standard to use',
['none', 'c++98', 'c++11', 'c++14', 'c++17', 'c++20', 'c++2b',
'gnu++98', 'gnu++11', 'gnu++14', 'gnu++17', 'gnu++20',
@@ -92,7 +92,7 @@ class ClangObjCPPCompiler(ClangCompiler, ObjCPPCompiler):
def get_option_compile_args(self, options: 'coredata.KeyedOptionDictType') -> T.List[str]:
args = []
- std = options.get_value(OptionKey('std', machine=self.for_machine, lang='cpp'))
+ std = options.get_value(OptionKey('cpp_std', machine=self.for_machine))
if std != 'none':
args.append('-std=' + std)
return args