diff options
| author | Dylan Baker <dylan@pnwbakers.com> | 2025-11-13 09:14:48 -0800 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2025-11-19 10:48:48 -0800 |
| commit | 3dff12ab62ac453202ea107922a0a249b24c0925 (patch) | |
| tree | 20111c57df5c1b6658dd7bf884c62ad1e5034478 /mesonbuild | |
| parent | b99ca7b394f6fa8f17f0fbcb0c2dc9896c4b0ed9 (diff) | |
| download | meson-3dff12ab62ac453202ea107922a0a249b24c0925.tar.gz | |
compilers: Remove Environment parameter from Compiler.sizeof
This also fixes the `_cross_sizeof` helper
Diffstat (limited to 'mesonbuild')
| -rw-r--r-- | mesonbuild/compilers/compilers.py | 2 | ||||
| -rw-r--r-- | mesonbuild/compilers/d.py | 4 | ||||
| -rw-r--r-- | mesonbuild/compilers/fortran.py | 18 | ||||
| -rw-r--r-- | mesonbuild/compilers/mixins/clike.py | 18 | ||||
| -rw-r--r-- | mesonbuild/interpreter/compiler.py | 2 | ||||
| -rw-r--r-- | mesonbuild/modules/cmake.py | 2 |
6 files changed, 23 insertions, 23 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 1384ac0f8..5f9dc7b0d 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -732,7 +732,7 @@ class Compiler(HoldableObject, metaclass=abc.ABCMeta): run_check_cache[key] = p return p - def sizeof(self, typename: str, prefix: str, env: 'Environment', *, + def sizeof(self, typename: str, prefix: str, *, extra_args: T.Union[None, T.List[str], T.Callable[[CompileCheckMode], T.List[str]]] = None, dependencies: T.Optional[T.List['Dependency']] = None) -> T.Tuple[int, bool]: raise EnvironmentException('Language %s does not support sizeof checks.' % self.get_display_language()) diff --git a/mesonbuild/compilers/d.py b/mesonbuild/compilers/d.py index 6a09f0d01..9de8e0018 100644 --- a/mesonbuild/compilers/d.py +++ b/mesonbuild/compilers/d.py @@ -575,7 +575,7 @@ class DCompiler(Compiler): extra_args = self._get_compile_extra_args(extra_args) return super().run(code, env, extra_args, dependencies, run_env, run_cwd) - def sizeof(self, typename: str, prefix: str, env: 'Environment', *, + def sizeof(self, typename: str, prefix: str, *, extra_args: T.Union[None, T.List[str], T.Callable[[CompileCheckMode], T.List[str]]] = None, dependencies: T.Optional[T.List['Dependency']] = None) -> T.Tuple[int, bool]: if extra_args is None: @@ -587,7 +587,7 @@ class DCompiler(Compiler): writeln(({typename}).sizeof); }} ''' - res = self.cached_run(t, env, extra_args=extra_args, + res = self.cached_run(t, self.environment, extra_args=extra_args, dependencies=dependencies) if not res.compiled: return -1, False diff --git a/mesonbuild/compilers/fortran.py b/mesonbuild/compilers/fortran.py index 78a352c7c..ff7b79027 100644 --- a/mesonbuild/compilers/fortran.py +++ b/mesonbuild/compilers/fortran.py @@ -207,9 +207,9 @@ class FortranCompiler(CLikeCompiler, Compiler): raise mesonlib.EnvironmentException('Could not run compute_int test binary.') return int(res.stdout) - def cross_sizeof(self, typename: str, prefix: str, env: 'Environment', *, - extra_args: T.Union[None, T.List[str], T.Callable[[CompileCheckMode], T.List[str]]] = None, - dependencies: T.Optional[T.List['Dependency']] = None) -> int: + def _cross_sizeof(self, typename: str, prefix: str, *, + extra_args: T.Union[None, T.List[str], T.Callable[[CompileCheckMode], T.List[str]]] = None, + dependencies: T.Optional[T.List['Dependency']] = None) -> int: if extra_args is None: extra_args = [] t = f'''program test @@ -221,16 +221,16 @@ class FortranCompiler(CLikeCompiler, Compiler): if not self.compiles(t, extra_args=extra_args, dependencies=dependencies)[0]: return -1 - return self.cross_compute_int('c_sizeof(x)', None, None, None, prefix + '\nuse iso_c_binding\n' + typename + ' :: x', env, extra_args, dependencies) + return self.cross_compute_int('c_sizeof(x)', None, None, None, prefix + '\nuse iso_c_binding\n' + typename + ' :: x', self.environment, extra_args, dependencies) - def sizeof(self, typename: str, prefix: str, env: 'Environment', *, + def sizeof(self, typename: str, prefix: str, *, extra_args: T.Union[None, T.List[str], T.Callable[[CompileCheckMode], T.List[str]]] = None, dependencies: T.Optional[T.List['Dependency']] = None) -> T.Tuple[int, bool]: if extra_args is None: extra_args = [] if self.is_cross: - r = self.cross_sizeof(typename, prefix, env, extra_args=extra_args, - dependencies=dependencies) + r = self._cross_sizeof(typename, prefix, extra_args=extra_args, + dependencies=dependencies) return r, False t = f'''program test use iso_c_binding @@ -239,7 +239,7 @@ class FortranCompiler(CLikeCompiler, Compiler): print '(i0)', c_sizeof(x) end program test ''' - res = self.cached_run(t, env, extra_args=extra_args, + res = self.cached_run(t, self.environment, extra_args=extra_args, dependencies=dependencies) if not res.compiled: return -1, False @@ -252,7 +252,7 @@ class FortranCompiler(CLikeCompiler, Compiler): ''' returns true if the output produced is 64-bit, false if 32-bit ''' - return self.sizeof('type(c_ptr)', '', env)[0] == 8 + return self.sizeof('type(c_ptr)', '')[0] == 8 class GnuFortranCompiler(GnuCompiler, FortranCompiler): diff --git a/mesonbuild/compilers/mixins/clike.py b/mesonbuild/compilers/mixins/clike.py index 2127c19c8..ef7b351e4 100644 --- a/mesonbuild/compilers/mixins/clike.py +++ b/mesonbuild/compilers/mixins/clike.py @@ -537,9 +537,9 @@ class CLikeCompiler(Compiler): raise mesonlib.EnvironmentException('Could not run compute_int test binary.') return int(res.stdout) - def cross_sizeof(self, typename: str, prefix: str, env: 'Environment', *, - extra_args: T.Union[None, T.List[str], T.Callable[[CompileCheckMode], T.List[str]]] = None, - dependencies: T.Optional[T.List['Dependency']] = None) -> int: + def _cross_sizeof(self, typename: str, prefix: str, *, + extra_args: T.Union[None, T.List[str], T.Callable[[CompileCheckMode], T.List[str]]] = None, + dependencies: T.Optional[T.List['Dependency']] = None) -> int: if extra_args is None: extra_args = [] t = f'''{prefix} @@ -551,16 +551,16 @@ class CLikeCompiler(Compiler): if not self.compiles(t, extra_args=extra_args, dependencies=dependencies)[0]: return -1 - return self.cross_compute_int(f'sizeof({typename})', None, None, None, prefix, env, extra_args, dependencies) + return self.cross_compute_int(f'sizeof({typename})', None, None, None, prefix, self.environment, extra_args, dependencies) - def sizeof(self, typename: str, prefix: str, env: 'Environment', *, + def sizeof(self, typename: str, prefix: str, *, extra_args: T.Union[None, T.List[str], T.Callable[[CompileCheckMode], T.List[str]]] = None, dependencies: T.Optional[T.List['Dependency']] = None) -> T.Tuple[int, bool]: if extra_args is None: extra_args = [] if self.is_cross: - r = self.cross_sizeof(typename, prefix, env, extra_args=extra_args, - dependencies=dependencies) + r = self._cross_sizeof(typename, prefix, extra_args=extra_args, + dependencies=dependencies) return r, False t = f'''{prefix} #include<stddef.h> @@ -569,7 +569,7 @@ class CLikeCompiler(Compiler): printf("%ld\\n", (long)(sizeof({typename}))); return 0; }}''' - res = self.cached_run(t, env, extra_args=extra_args, + res = self.cached_run(t, self.environment, extra_args=extra_args, dependencies=dependencies) if not res.compiled: return -1, False @@ -1126,7 +1126,7 @@ class CLikeCompiler(Compiler): ''' returns true if the output produced is 64-bit, false if 32-bit ''' - return self.sizeof('void *', '', env)[0] == 8 + return self.sizeof('void *', '')[0] == 8 def _find_library_real(self, libname: str, extra_dirs: T.List[str], code: str, libtype: LibType, lib_prefix_warning: bool, ignore_system_dirs: bool) -> T.Optional[T.List[str]]: diff --git a/mesonbuild/interpreter/compiler.py b/mesonbuild/interpreter/compiler.py index ce5cc06f3..9629cdc6d 100644 --- a/mesonbuild/interpreter/compiler.py +++ b/mesonbuild/interpreter/compiler.py @@ -451,7 +451,7 @@ class CompilerHolder(ObjectHolder['Compiler']): element = args[0] extra_args = functools.partial(self._determine_args, kwargs) deps, msg = self._determine_dependencies(kwargs['dependencies'], compile_only=self.compiler.is_cross) - esize, cached = self.compiler.sizeof(element, kwargs['prefix'], self.environment, + esize, cached = self.compiler.sizeof(element, kwargs['prefix'], extra_args=extra_args, dependencies=deps) cached_msg = mlog.blue('(cached)') if cached else '' mlog.log('Checking for size of', diff --git a/mesonbuild/modules/cmake.py b/mesonbuild/modules/cmake.py index 700749078..ce22cef26 100644 --- a/mesonbuild/modules/cmake.py +++ b/mesonbuild/modules/cmake.py @@ -261,7 +261,7 @@ class CmakeModule(ExtensionModule): if not compiler: raise mesonlib.MesonException('Requires a C or C++ compiler to compute sizeof(void *).') - return compiler.sizeof('void *', '', env)[0] + return compiler.sizeof('void *', '')[0] def detect_cmake(self, state: ModuleState) -> bool: if self.cmake_detected: |
