summaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2023-09-29 14:46:44 -0700
committerDylan Baker <dylan@pnwbakers.com>2023-10-17 08:09:06 -0700
commitd38bf5fbb0b21e1f33ee81d52a361d4c8f8847a5 (patch)
tree7a6466aa07a0eb636d8393baec95c6f4b8c9a907 /mesonbuild
parent0f23dc5b03fda2e8958903eb25587a7e4e2daa67 (diff)
downloadmeson-d38bf5fbb0b21e1f33ee81d52a361d4c8f8847a5.tar.gz
interpreter: use typed_kwargs for build_target.gnu_symbol_visibility
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/interpreter/interpreter.py6
-rw-r--r--mesonbuild/interpreter/kwargs.py1
-rw-r--r--mesonbuild/interpreter/type_checking.py7
-rw-r--r--mesonbuild/modules/python.py2
4 files changed, 9 insertions, 7 deletions
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py
index 25e096b22..223ebddba 100644
--- a/mesonbuild/interpreter/interpreter.py
+++ b/mesonbuild/interpreter/interpreter.py
@@ -3292,12 +3292,6 @@ class Interpreter(InterpreterBase, HoldableObject):
kwargs: T.Union[kwtypes.Executable, kwtypes.StaticLibrary, kwtypes.SharedLibrary, kwtypes.SharedModule, kwtypes.Jar],
targetclass: T.Type[T.Union[build.Executable, build.StaticLibrary, build.SharedModule, build.SharedLibrary, build.Jar]]
) -> T.Union[build.Executable, build.StaticLibrary, build.SharedModule, build.SharedLibrary, build.Jar]:
- @FeatureNewKwargs('build target', '0.48.0', ['gnu_symbol_visibility'])
- def build_target_decorator_caller(self, node, args, kwargs):
- return True
-
- build_target_decorator_caller(self, node, args, kwargs)
-
name, sources = args
for_machine = kwargs['native']
if kwargs.get('rust_crate_type') == 'proc-macro':
diff --git a/mesonbuild/interpreter/kwargs.py b/mesonbuild/interpreter/kwargs.py
index d6d6220fd..31730e645 100644
--- a/mesonbuild/interpreter/kwargs.py
+++ b/mesonbuild/interpreter/kwargs.py
@@ -328,6 +328,7 @@ class _BaseBuildTarget(TypedDict):
build_by_default: bool
build_rpath: str
extra_files: T.List[FileOrString]
+ gnu_symbol_visibility: str
install: bool
install_mode: FileMode
install_rpath: str
diff --git a/mesonbuild/interpreter/type_checking.py b/mesonbuild/interpreter/type_checking.py
index c2ea63299..b67a4006a 100644
--- a/mesonbuild/interpreter/type_checking.py
+++ b/mesonbuild/interpreter/type_checking.py
@@ -577,6 +577,13 @@ _BUILD_TARGET_KWS: T.List[KwargInfo] = [
since='1.2.0',
),
KwargInfo('build_rpath', str, default='', since='0.42.0'),
+ KwargInfo(
+ 'gnu_symbol_visibility',
+ str,
+ default='',
+ validator=in_set_validator({'', 'default', 'internal', 'hidden', 'protected', 'inlineshidden'}),
+ since='0.48.0',
+ ),
KwargInfo('install_rpath', str, default=''),
KwargInfo(
'link_language',
diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py
index 432962cee..ec95374d3 100644
--- a/mesonbuild/modules/python.py
+++ b/mesonbuild/modules/python.py
@@ -232,7 +232,7 @@ class PythonInstallation(_ExternalProgramHolder['PythonExternalProgram']):
kwargs['name_prefix'] = ''
kwargs['name_suffix'] = target_suffix
- if 'gnu_symbol_visibility' not in kwargs and \
+ if kwargs['gnu_symbol_visibility'] == '' and \
(self.is_pypy or mesonlib.version_compare(self.version, '>=3.9')):
kwargs['gnu_symbol_visibility'] = 'inlineshidden'