From 4fa52925459dac650bf053715987ee7beb3b23c1 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Tue, 4 Mar 2025 08:14:38 -0800 Subject: coredata: replace get_option with optstore.get_value_for This is an old method, that is now just a wrapper around the OptionStore method, that doesn't add any value. It's also an option related method attached to the CoreData instead of the OptionStore, so useless and a layering violation. --- mesonbuild/ast/introspection.py | 4 ++-- mesonbuild/backend/backends.py | 10 +++++----- mesonbuild/backend/ninjabackend.py | 6 +++--- mesonbuild/backend/vs2010backend.py | 20 ++++++++++---------- mesonbuild/backend/xcodebackend.py | 4 ++-- mesonbuild/build.py | 8 ++++---- mesonbuild/cmake/common.py | 2 +- mesonbuild/cmake/interpreter.py | 2 +- mesonbuild/coredata.py | 3 --- mesonbuild/dependencies/base.py | 4 ++-- mesonbuild/dependencies/boost.py | 2 +- mesonbuild/dependencies/dub.py | 2 +- mesonbuild/dependencies/misc.py | 2 +- mesonbuild/dependencies/python.py | 4 ++-- mesonbuild/dependencies/scalapack.py | 2 +- mesonbuild/environment.py | 14 +++++++------- mesonbuild/interpreter/compiler.py | 4 ++-- mesonbuild/interpreter/dependencyfallbacks.py | 6 +++--- mesonbuild/interpreter/interpreter.py | 18 +++++++++--------- mesonbuild/interpreter/mesonmain.py | 6 +++--- mesonbuild/mcompile.py | 4 ++-- mesonbuild/mdevenv.py | 6 +++--- mesonbuild/mdist.py | 4 ++-- mesonbuild/minit.py | 2 +- mesonbuild/minstall.py | 4 ++-- mesonbuild/mintro.py | 2 +- mesonbuild/modules/__init__.py | 2 +- mesonbuild/modules/cmake.py | 6 +++--- mesonbuild/modules/external_project.py | 8 ++++---- mesonbuild/modules/gnome.py | 8 ++++---- mesonbuild/modules/hotdoc.py | 2 +- mesonbuild/modules/i18n.py | 2 +- mesonbuild/modules/pkgconfig.py | 10 +++++----- mesonbuild/modules/python.py | 6 +++--- mesonbuild/mtest.py | 4 ++-- mesonbuild/munstable_coredata.py | 2 +- mesonbuild/scripts/regen_checker.py | 2 +- 37 files changed, 97 insertions(+), 100 deletions(-) diff --git a/mesonbuild/ast/introspection.py b/mesonbuild/ast/introspection.py index 69ffc55f7..b042eb37a 100644 --- a/mesonbuild/ast/introspection.py +++ b/mesonbuild/ast/introspection.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: Apache-2.0 # Copyright 2018 The Meson development team -# Copyright © 2024 Intel Corporation +# Copyright © 2024-2025 Intel Corporation # This class contains the basic functionality needed to run any interpreter # or an interpreter-based tool @@ -313,7 +313,7 @@ class IntrospectionInterpreter(AstInterpreter): return new_target def build_library(self, node: BaseNode, args: T.List[TYPE_var], kwargs: T.Dict[str, TYPE_var]) -> T.Optional[T.Dict[str, T.Any]]: - default_library = self.coredata.get_option(OptionKey('default_library')) + default_library = self.coredata.optstore.get_value_for(OptionKey('default_library')) if default_library == 'shared': return self.build_target(node, args, kwargs, SharedLibrary) elif default_library == 'static': diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py index 1e5c00803..feb002e54 100644 --- a/mesonbuild/backend/backends.py +++ b/mesonbuild/backend/backends.py @@ -373,7 +373,7 @@ class Backend: if isinstance(target, build.RunTarget): # this produces no output, only a dummy top-level name dirname = '' - elif self.environment.coredata.get_option(OptionKey('layout')) == 'mirror': + elif self.environment.coredata.optstore.get_value_for(OptionKey('layout')) == 'mirror': dirname = target.get_subdir() else: dirname = 'meson-out' @@ -815,7 +815,7 @@ class Backend: def determine_rpath_dirs(self, target: T.Union[build.BuildTarget, build.CustomTarget, build.CustomTargetIndex] ) -> T.Tuple[str, ...]: result: OrderedSet[str] - if self.environment.coredata.get_option(OptionKey('layout')) == 'mirror': + if self.environment.coredata.optstore.get_value_for(OptionKey('layout')) == 'mirror': # Need a copy here result = OrderedSet(target.get_link_dep_subdirs()) else: @@ -1335,7 +1335,7 @@ class Backend: def generate_depmf_install(self, d: InstallData) -> None: depmf_path = self.build.dep_manifest_name if depmf_path is None: - option_dir = self.environment.coredata.get_option(OptionKey('licensedir')) + option_dir = self.environment.coredata.optstore.get_value_for(OptionKey('licensedir')) assert isinstance(option_dir, str), 'for mypy' if option_dir: depmf_path = os.path.join(option_dir, 'depmf.json') @@ -1666,7 +1666,7 @@ class Backend: # TODO go through all candidates, like others strip_bin = [detect.defaults['strip'][0]] - umask = self.environment.coredata.get_option(OptionKey('install_umask')) + umask = self.environment.coredata.optstore.get_value_for(OptionKey('install_umask')) assert isinstance(umask, (str, int)), 'for mypy' d = InstallData(self.environment.get_source_dir(), @@ -1698,7 +1698,7 @@ class Backend: bindir = Path(prefix, self.environment.get_bindir()) libdir = Path(prefix, self.environment.get_libdir()) incdir = Path(prefix, self.environment.get_includedir()) - _ldir = self.environment.coredata.get_option(OptionKey('localedir')) + _ldir = self.environment.coredata.optstore.get_value_for(OptionKey('localedir')) assert isinstance(_ldir, str), 'for mypy' localedir = Path(prefix, _ldir) dest_path = Path(prefix, outdir, Path(fname).name) if outdir else Path(prefix, fname) diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 251e63fd8..f698a2b01 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -614,7 +614,7 @@ class NinjaBackend(backends.Backend): # so no harm in catching and reporting something unexpected. raise MesonBugException('We do not expect the ninja backend to be given a valid \'vslite_ctx\'') ninja = environment.detect_ninja_command_and_version(log=True) - if self.environment.coredata.get_option(OptionKey('vsenv')): + if self.environment.coredata.optstore.get_value_for(OptionKey('vsenv')): builddir = Path(self.environment.get_build_dir()) try: # For prettier printing, reduce to a relative path. If @@ -1340,9 +1340,9 @@ class NinjaBackend(backends.Backend): def generate_tests(self) -> None: self.serialize_tests() cmd = self.environment.get_build_command(True) + ['test', '--no-rebuild'] - if not self.environment.coredata.get_option(OptionKey('stdsplit')): + if not self.environment.coredata.optstore.get_value_for(OptionKey('stdsplit')): cmd += ['--no-stdsplit'] - if self.environment.coredata.get_option(OptionKey('errorlogs')): + if self.environment.coredata.optstore.get_value_for(OptionKey('errorlogs')): cmd += ['--print-errorlogs'] elem = self.create_phony_target('test', 'CUSTOM_COMMAND', ['all', 'meson-test-prereq', 'PHONY']) elem.add_item('COMMAND', cmd) diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py index feef3a721..59ddb9c26 100644 --- a/mesonbuild/backend/vs2010backend.py +++ b/mesonbuild/backend/vs2010backend.py @@ -267,11 +267,11 @@ class Vs2010Backend(backends.Backend): else: raise MesonException('Unsupported Visual Studio platform: ' + build_machine) - self.buildtype = self.environment.coredata.get_option(OptionKey('buildtype')) - self.optimization = self.environment.coredata.get_option(OptionKey('optimization')) - self.debug = self.environment.coredata.get_option(OptionKey('debug')) + self.buildtype = self.environment.coredata.optstore.get_value_for(OptionKey('buildtype')) + self.optimization = self.environment.coredata.optstore.get_value_for(OptionKey('optimization')) + self.debug = self.environment.coredata.optstore.get_value_for(OptionKey('debug')) try: - self.sanitize = self.environment.coredata.get_option(OptionKey('b_sanitize')) + self.sanitize = self.environment.coredata.optstore.get_value_for(OptionKey('b_sanitize')) except KeyError: self.sanitize = [] sln_filename = os.path.join(self.environment.get_build_dir(), self.build.project_name + '.sln') @@ -422,7 +422,7 @@ class Vs2010Backend(backends.Backend): ofile.write('# Visual Studio %s\n' % self.sln_version_comment) prj_templ = 'Project("{%s}") = "%s", "%s", "{%s}"\n' for prj in projlist: - if self.environment.coredata.get_option(OptionKey('layout')) == 'mirror': + if self.environment.coredata.optstore.get_value_for(OptionKey('layout')) == 'mirror': self.generate_solution_dirs(ofile, prj[1].parents) target = self.build.targets[prj[0]] lang = 'default' @@ -1791,7 +1791,7 @@ class Vs2010Backend(backends.Backend): # build system as possible. self.add_target_deps(root, target) self._prettyprint_vcxproj_xml(ET.ElementTree(root), ofname) - if self.environment.coredata.get_option(OptionKey('layout')) == 'mirror': + if self.environment.coredata.optstore.get_value_for(OptionKey('layout')) == 'mirror': self.gen_vcxproj_filters(target, ofname) return True @@ -1960,9 +1960,9 @@ class Vs2010Backend(backends.Backend): meson_build_dir_for_buildtype = build_dir_tail[:-2] + buildtype # Get the buildtype suffixed 'builddir_[debug/release/etc]' from 'builddir_vs', for example. proj_to_build_dir_for_buildtype = str(os.path.join(proj_to_multiconfigured_builds_parent_dir, meson_build_dir_for_buildtype)) test_cmd = f'{nmake_base_meson_command} test -C "{proj_to_build_dir_for_buildtype}" --no-rebuild' - if not self.environment.coredata.get_option(OptionKey('stdsplit')): + if not self.environment.coredata.optstore.get_value_for(OptionKey('stdsplit')): test_cmd += ' --no-stdsplit' - if self.environment.coredata.get_option(OptionKey('errorlogs')): + if self.environment.coredata.optstore.get_value_for(OptionKey('errorlogs')): test_cmd += ' --print-errorlogs' condition = f'\'$(Configuration)|$(Platform)\'==\'{buildtype}|{self.platform}\'' prop_group = ET.SubElement(root, 'PropertyGroup', Condition=condition) @@ -1984,9 +1984,9 @@ class Vs2010Backend(backends.Backend): ET.SubElement(midl, 'ProxyFileName').text = '%(Filename)_p.c' # FIXME: No benchmarks? test_command = self.environment.get_build_command() + ['test', '--no-rebuild'] - if not self.environment.coredata.get_option(OptionKey('stdsplit')): + if not self.environment.coredata.optstore.get_value_for(OptionKey('stdsplit')): test_command += ['--no-stdsplit'] - if self.environment.coredata.get_option(OptionKey('errorlogs')): + if self.environment.coredata.optstore.get_value_for(OptionKey('errorlogs')): test_command += ['--print-errorlogs'] self.serialize_tests() self.add_custom_build(root, 'run_tests', '"%s"' % ('" "'.join(test_command))) diff --git a/mesonbuild/backend/xcodebackend.py b/mesonbuild/backend/xcodebackend.py index 7108e72a7..e5c631fff 100644 --- a/mesonbuild/backend/xcodebackend.py +++ b/mesonbuild/backend/xcodebackend.py @@ -230,7 +230,7 @@ class XCodeBackend(backends.Backend): def __init__(self, build: T.Optional[build.Build], interpreter: T.Optional[Interpreter]): super().__init__(build, interpreter) self.project_uid = self.environment.coredata.lang_guids['default'].replace('-', '')[:24] - self.buildtype = T.cast('str', self.environment.coredata.get_option(OptionKey('buildtype'))) + self.buildtype = T.cast('str', self.environment.coredata.optstore.get_value_for(OptionKey('buildtype'))) self.project_conflist = self.gen_id() self.maingroup_id = self.gen_id() self.all_id = self.gen_id() @@ -272,7 +272,7 @@ class XCodeBackend(backends.Backend): @functools.lru_cache(maxsize=None) def get_target_dir(self, target: T.Union[build.Target, build.CustomTargetIndex]) -> str: - dirname = os.path.join(target.get_subdir(), T.cast('str', self.environment.coredata.get_option(OptionKey('buildtype')))) + dirname = os.path.join(target.get_subdir(), T.cast('str', self.environment.coredata.optstore.get_value_for(OptionKey('buildtype')))) #os.makedirs(os.path.join(self.environment.get_build_dir(), dirname), exist_ok=True) return dirname diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 6463c6f9e..a883c3b28 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -1726,7 +1726,7 @@ class BuildTarget(Target): self.process_link_depends(path) def extract_targets_as_list(self, kwargs: T.Dict[str, T.Union[LibTypes, T.Sequence[LibTypes]]], key: T.Literal['link_with', 'link_whole']) -> T.List[LibTypes]: - bl_type = self.environment.coredata.get_option(OptionKey('default_both_libraries')) + bl_type = self.environment.coredata.optstore.get_value_for(OptionKey('default_both_libraries')) if bl_type == 'auto': if isinstance(self, StaticLibrary): bl_type = 'static' @@ -2026,7 +2026,7 @@ class Executable(BuildTarget): machine.is_windows() and ('cs' in self.compilers or self.uses_rust() or self.get_using_msvc()) # .pdb file is created only when debug symbols are enabled - and self.environment.coredata.get_option(OptionKey("debug")) + and self.environment.coredata.optstore.get_value_for(OptionKey("debug")) ) if create_debug_file: # If the target is has a standard exe extension (i.e. 'foo.exe'), @@ -2308,14 +2308,14 @@ class SharedLibrary(BuildTarget): # Import library is called foo.dll.lib import_filename_tpl = '{0.prefix}{0.name}.dll.lib' # .pdb file is only created when debug symbols are enabled - create_debug_file = self.environment.coredata.get_option(OptionKey("debug")) + create_debug_file = self.environment.coredata.optstore.get_value_for(OptionKey("debug")) elif self.get_using_msvc(): # Shared library is of the form foo.dll prefix = '' # Import library is called foo.lib import_filename_tpl = '{0.prefix}{0.name}.lib' # .pdb file is only created when debug symbols are enabled - create_debug_file = self.environment.coredata.get_option(OptionKey("debug")) + create_debug_file = self.environment.coredata.optstore.get_value_for(OptionKey("debug")) # Assume GCC-compatible naming else: # Shared library is of the form libfoo.dll diff --git a/mesonbuild/cmake/common.py b/mesonbuild/cmake/common.py index e3ba76b9e..7644c0b96 100644 --- a/mesonbuild/cmake/common.py +++ b/mesonbuild/cmake/common.py @@ -105,7 +105,7 @@ def _flags_to_list(raw: str) -> T.List[str]: return res def cmake_get_generator_args(env: 'Environment') -> T.List[str]: - backend_name = env.coredata.get_option(OptionKey('backend')) + backend_name = env.coredata.optstore.get_value_for(OptionKey('backend')) assert isinstance(backend_name, str) assert backend_name in backend_generator_map return ['-G', backend_generator_map[backend_name]] diff --git a/mesonbuild/cmake/interpreter.py b/mesonbuild/cmake/interpreter.py index 27ce54e20..53f4f193e 100644 --- a/mesonbuild/cmake/interpreter.py +++ b/mesonbuild/cmake/interpreter.py @@ -828,7 +828,7 @@ class CMakeInterpreter: cmake_args += extra_cmake_options if not any(arg.startswith('-DCMAKE_BUILD_TYPE=') for arg in cmake_args): # Our build type is favored over any CMAKE_BUILD_TYPE environment variable - buildtype = T.cast('str', self.env.coredata.get_option(OptionKey('buildtype'))) + buildtype = T.cast('str', self.env.coredata.optstore.get_value_for(OptionKey('buildtype'))) if buildtype in BUILDTYPE_MAP: cmake_args += [f'-DCMAKE_BUILD_TYPE={BUILDTYPE_MAP[buildtype]}'] trace_args = self.trace.trace_args() diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py index 1097d69ec..f1286aa2e 100644 --- a/mesonbuild/coredata.py +++ b/mesonbuild/coredata.py @@ -397,9 +397,6 @@ class CoreData: 'Default project to execute in Visual Studio', '')) - def get_option(self, key: OptionKey) -> ElementaryOptionValues: - return self.optstore.get_value_for(key.name, key.subproject) - def get_option_for_target(self, target: 'BuildTarget', key: T.Union[str, OptionKey]) -> ElementaryOptionValues: if isinstance(key, str): assert ':' not in key diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py index af3709557..38bfc0822 100644 --- a/mesonbuild/dependencies/base.py +++ b/mesonbuild/dependencies/base.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: Apache-2.0 # Copyright 2013-2018 The Meson development team -# Copyright © 2024 Intel Corporation +# Copyright © 2024-2025 Intel Corporation # This file contains the detection logic for external dependencies. # Custom logic for several other packages are in separate files. @@ -403,7 +403,7 @@ class ExternalDependency(Dependency, HasNativeKwarg): self.version_reqs: T.Optional[T.List[str]] = version_reqs self.required = kwargs.get('required', True) self.silent = kwargs.get('silent', False) - self.static = kwargs.get('static', self.env.coredata.get_option(OptionKey('prefer_static'))) + self.static = kwargs.get('static', self.env.coredata.optstore.get_value_for(OptionKey('prefer_static'))) self.libtype = LibType.STATIC if self.static else LibType.PREFER_SHARED if not isinstance(self.static, bool): raise DependencyException('Static keyword must be boolean') diff --git a/mesonbuild/dependencies/boost.py b/mesonbuild/dependencies/boost.py index 0c613205f..662f9851b 100644 --- a/mesonbuild/dependencies/boost.py +++ b/mesonbuild/dependencies/boost.py @@ -341,7 +341,7 @@ class BoostLibraryFile(): class BoostDependency(SystemDependency): def __init__(self, environment: Environment, kwargs: T.Dict[str, T.Any]) -> None: super().__init__('boost', environment, kwargs, language='cpp') - buildtype = environment.coredata.get_option(OptionKey('buildtype')) + buildtype = environment.coredata.optstore.get_value_for(OptionKey('buildtype')) assert isinstance(buildtype, str) self.debug = buildtype.startswith('debug') self.multithreading = kwargs.get('threading', 'multi') == 'multi' diff --git a/mesonbuild/dependencies/dub.py b/mesonbuild/dependencies/dub.py index 6b6d28306..ac137e399 100644 --- a/mesonbuild/dependencies/dub.py +++ b/mesonbuild/dependencies/dub.py @@ -121,7 +121,7 @@ class DubDependency(ExternalDependency): dub_arch = self.compiler.arch # we need to know the build type as well - dub_buildtype = str(environment.coredata.get_option(OptionKey('buildtype'))) + dub_buildtype = str(environment.coredata.optstore.get_value_for(OptionKey('buildtype'))) # MESON types: choices=['plain', 'debug', 'debugoptimized', 'release', 'minsize', 'custom'])), # DUB types: debug (default), plain, release, release-debug, release-nobounds, unittest, profile, profile-gc, # docs, ddox, cov, unittest-cov, syntax and custom diff --git a/mesonbuild/dependencies/misc.py b/mesonbuild/dependencies/misc.py index 6a2a73f2f..3ab2194e3 100644 --- a/mesonbuild/dependencies/misc.py +++ b/mesonbuild/dependencies/misc.py @@ -572,7 +572,7 @@ def shaderc_factory(env: 'Environment', shared_libs = ['shaderc'] static_libs = ['shaderc_combined', 'shaderc_static'] - if kwargs.get('static', env.coredata.get_option(OptionKey('prefer_static'))): + if kwargs.get('static', env.coredata.optstore.get_value_for(OptionKey('prefer_static'))): c = [functools.partial(PkgConfigDependency, name, env, kwargs) for name in static_libs + shared_libs] else: diff --git a/mesonbuild/dependencies/python.py b/mesonbuild/dependencies/python.py index f7417717e..ca02d6743 100644 --- a/mesonbuild/dependencies/python.py +++ b/mesonbuild/dependencies/python.py @@ -244,9 +244,9 @@ class _PythonDependencyBase(_Base): # Python itself (except with pybind11, which has an ugly # hack to work around this) - so emit a warning to explain # the cause of the expected link error. - buildtype = self.env.coredata.get_option(OptionKey('buildtype')) + buildtype = self.env.coredata.optstore.get_value_for(OptionKey('buildtype')) assert isinstance(buildtype, str) - debug = self.env.coredata.get_option(OptionKey('debug')) + debug = self.env.coredata.optstore.get_value_for(OptionKey('debug')) # `debugoptimized` buildtype may not set debug=True currently, see gh-11645 is_debug_build = debug or buildtype == 'debug' vscrt_debug = False diff --git a/mesonbuild/dependencies/scalapack.py b/mesonbuild/dependencies/scalapack.py index e50338710..c04d1f51f 100644 --- a/mesonbuild/dependencies/scalapack.py +++ b/mesonbuild/dependencies/scalapack.py @@ -28,7 +28,7 @@ def scalapack_factory(env: 'Environment', for_machine: 'MachineChoice', candidates: T.List['DependencyGenerator'] = [] if DependencyMethods.PKGCONFIG in methods: - static_opt = kwargs.get('static', env.coredata.get_option(OptionKey('prefer_static'))) + static_opt = kwargs.get('static', env.coredata.optstore.get_value_for(OptionKey('prefer_static'))) mkl = 'mkl-static-lp64-iomp' if static_opt else 'mkl-dynamic-lp64-iomp' candidates.append(functools.partial( MKLPkgConfigDependency, mkl, env, kwargs)) diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py index da29d6c3c..5640b9de3 100644 --- a/mesonbuild/environment.py +++ b/mesonbuild/environment.py @@ -964,25 +964,25 @@ class Environment: return self.get_libdir() def get_prefix(self) -> str: - return _as_str(self.coredata.get_option(OptionKey('prefix'))) + return _as_str(self.coredata.optstore.get_value_for(OptionKey('prefix'))) def get_libdir(self) -> str: - return _as_str(self.coredata.get_option(OptionKey('libdir'))) + return _as_str(self.coredata.optstore.get_value_for(OptionKey('libdir'))) def get_libexecdir(self) -> str: - return _as_str(self.coredata.get_option(OptionKey('libexecdir'))) + return _as_str(self.coredata.optstore.get_value_for(OptionKey('libexecdir'))) def get_bindir(self) -> str: - return _as_str(self.coredata.get_option(OptionKey('bindir'))) + return _as_str(self.coredata.optstore.get_value_for(OptionKey('bindir'))) def get_includedir(self) -> str: - return _as_str(self.coredata.get_option(OptionKey('includedir'))) + return _as_str(self.coredata.optstore.get_value_for(OptionKey('includedir'))) def get_mandir(self) -> str: - return _as_str(self.coredata.get_option(OptionKey('mandir'))) + return _as_str(self.coredata.optstore.get_value_for(OptionKey('mandir'))) def get_datadir(self) -> str: - return _as_str(self.coredata.get_option(OptionKey('datadir'))) + return _as_str(self.coredata.optstore.get_value_for(OptionKey('datadir'))) def get_compiler_system_lib_dirs(self, for_machine: MachineChoice) -> T.List[str]: for comp in self.coredata.compilers[for_machine].values(): diff --git a/mesonbuild/interpreter/compiler.py b/mesonbuild/interpreter/compiler.py index 92f63f0d7..303af1240 100644 --- a/mesonbuild/interpreter/compiler.py +++ b/mesonbuild/interpreter/compiler.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: Apache-2.0 # Copyright 2012-2021 The Meson development team -# Copyright © 2021-2024 Intel Corporation +# Copyright © 2021-2025 Intel Corporation from __future__ import annotations import collections @@ -716,7 +716,7 @@ class CompilerHolder(ObjectHolder['Compiler']): search_dirs = extract_search_dirs(kwargs) - prefer_static = self.environment.coredata.get_option(OptionKey('prefer_static')) + prefer_static = self.environment.coredata.optstore.get_value_for(OptionKey('prefer_static')) if kwargs['static'] is True: libtype = mesonlib.LibType.STATIC elif kwargs['static'] is False: diff --git a/mesonbuild/interpreter/dependencyfallbacks.py b/mesonbuild/interpreter/dependencyfallbacks.py index 6f5a0e47e..0ebfe3bd5 100644 --- a/mesonbuild/interpreter/dependencyfallbacks.py +++ b/mesonbuild/interpreter/dependencyfallbacks.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: Apache-2.0 # Copyright 2021-2024 The Meson Developers -# Copyright © 2021-2024 Intel Corporation +# Copyright © 2021-2025 Intel Corporation from __future__ import annotations @@ -326,8 +326,8 @@ class DependencyFallbacksHolder(MesonInterpreterObject): return self._notfound_dependency() # Check if usage of the subproject fallback is forced - wrap_mode = WrapMode.from_string(self.coredata.get_option(OptionKey('wrap_mode'))) - force_fallback_for = self.coredata.get_option(OptionKey('force_fallback_for')) + wrap_mode = WrapMode.from_string(self.coredata.optstore.get_value_for(OptionKey('wrap_mode'))) + force_fallback_for = self.coredata.optstore.get_value_for(OptionKey('force_fallback_for')) assert isinstance(force_fallback_for, list), 'for mypy' self.nofallback = wrap_mode == WrapMode.nofallback self.forcefallback = (force_fallback or diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py index 42e6243e1..14de76888 100644 --- a/mesonbuild/interpreter/interpreter.py +++ b/mesonbuild/interpreter/interpreter.py @@ -1135,10 +1135,10 @@ class Interpreter(InterpreterBase, HoldableObject): if OptionKey('genvslite') in self.user_defined_options.cmd_line_options: # Use of the '--genvslite vsxxxx' option ultimately overrides any '--backend xxx' # option the user may specify. - backend_name = self.coredata.get_option(OptionKey('genvslite')) + backend_name = self.coredata.optstore.get_value_for(OptionKey('genvslite')) self.backend = backends.get_genvslite_backend(backend_name, self.build, self) else: - backend_name = self.coredata.get_option(OptionKey('backend')) + backend_name = self.coredata.optstore.get_value_for(OptionKey('backend')) self.backend = backends.get_backend_from_name(backend_name, self.build, self) if self.backend is None: @@ -1291,7 +1291,7 @@ class Interpreter(InterpreterBase, HoldableObject): # Load wrap files from this (sub)project. subprojects_dir = os.path.join(self.subdir, spdirname) if not self.is_subproject(): - wrap_mode = WrapMode.from_string(self.coredata.get_option(OptionKey('wrap_mode'))) + wrap_mode = WrapMode.from_string(self.coredata.optstore.get_value_for(OptionKey('wrap_mode'))) self.environment.wrap_resolver = wrap.Resolver(self.environment.get_source_dir(), subprojects_dir, self.subproject, wrap_mode) else: assert self.environment.wrap_resolver is not None, 'for mypy' @@ -1306,9 +1306,9 @@ class Interpreter(InterpreterBase, HoldableObject): # self.set_backend() otherwise it wouldn't be able to detect which # vs backend version we need. But after setting default_options in case # the project sets vs backend by default. - backend = self.coredata.get_option(OptionKey('backend')) + backend = self.coredata.optstore.get_value_for(OptionKey('backend')) assert backend is None or isinstance(backend, str), 'for mypy' - vsenv = self.coredata.get_option(OptionKey('vsenv')) + vsenv = self.coredata.optstore.get_value_for(OptionKey('vsenv')) assert isinstance(vsenv, bool), 'for mypy' force_vsenv = vsenv or backend.startswith('vs') mesonlib.setup_vsenv(force_vsenv) @@ -1702,7 +1702,7 @@ class Interpreter(InterpreterBase, HoldableObject): return ExternalProgram('meson', self.environment.get_build_command(), silent=True) fallback = None - wrap_mode = WrapMode.from_string(self.coredata.get_option(OptionKey('wrap_mode'))) + wrap_mode = WrapMode.from_string(self.coredata.optstore.get_value_for(OptionKey('wrap_mode'))) if wrap_mode != WrapMode.nofallback and self.environment.wrap_resolver: fallback = self.environment.wrap_resolver.find_program_provider(args) if fallback and wrap_mode == WrapMode.forcefallback: @@ -3279,9 +3279,9 @@ class Interpreter(InterpreterBase, HoldableObject): def build_both_libraries(self, node: mparser.BaseNode, args: T.Tuple[str, SourcesVarargsType], kwargs: kwtypes.Library) -> build.BothLibraries: shared_lib = self.build_target(node, args, kwargs, build.SharedLibrary) static_lib = self.build_target(node, args, kwargs, build.StaticLibrary) - preferred_library = self.coredata.get_option(OptionKey('default_both_libraries')) + preferred_library = self.coredata.optstore.get_value_for(OptionKey('default_both_libraries')) if preferred_library == 'auto': - preferred_library = self.coredata.get_option(OptionKey('default_library')) + preferred_library = self.coredata.optstore.get_value_for(OptionKey('default_library')) if preferred_library == 'both': preferred_library = 'shared' @@ -3322,7 +3322,7 @@ class Interpreter(InterpreterBase, HoldableObject): return build.BothLibraries(shared_lib, static_lib, preferred_library) def build_library(self, node: mparser.BaseNode, args: T.Tuple[str, SourcesVarargsType], kwargs: kwtypes.Library): - default_library = self.coredata.get_option(OptionKey('default_library', subproject=self.subproject)) + default_library = self.coredata.optstore.get_value_for(OptionKey('default_library', subproject=self.subproject)) assert isinstance(default_library, str), 'for mypy' if default_library == 'shared': return self.build_target(node, args, T.cast('kwtypes.SharedLibrary', kwargs), build.SharedLibrary) diff --git a/mesonbuild/interpreter/mesonmain.py b/mesonbuild/interpreter/mesonmain.py index c82f93345..8ede6916a 100644 --- a/mesonbuild/interpreter/mesonmain.py +++ b/mesonbuild/interpreter/mesonmain.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: Apache-2.0 # Copyright 2012-2021 The Meson development team -# Copyright © 2021-2024 Intel Corporation +# Copyright © 2021-2025 Intel Corporation from __future__ import annotations import copy @@ -311,7 +311,7 @@ class MesonMain(MesonInterpreterObject): @noPosargs @noKwargs def is_unity_method(self, args: T.List['TYPE_var'], kwargs: 'TYPE_kwargs') -> bool: - optval = self.interpreter.environment.coredata.get_option(OptionKey('unity')) + optval = self.interpreter.environment.coredata.optstore.get_value_for(OptionKey('unity')) return optval == 'on' or (optval == 'subprojects' and self.interpreter.is_subproject()) @noPosargs @@ -360,7 +360,7 @@ class MesonMain(MesonInterpreterObject): dep.name = name optkey = OptionKey('default_library', subproject=self.interpreter.subproject) - default_library = self.interpreter.coredata.get_option(optkey) + default_library = self.interpreter.coredata.optstore.get_value_for(optkey) assert isinstance(default_library, str), 'for mypy' static = kwargs['static'] if static is None: diff --git a/mesonbuild/mcompile.py b/mesonbuild/mcompile.py index 2f5708c86..cfaeb7960 100644 --- a/mesonbuild/mcompile.py +++ b/mesonbuild/mcompile.py @@ -355,14 +355,14 @@ def run(options: 'argparse.Namespace') -> int: b = build.load(options.wd) cdata = b.environment.coredata - need_vsenv = T.cast('bool', cdata.get_option(OptionKey('vsenv'))) + need_vsenv = T.cast('bool', cdata.optstore.get_value_for(OptionKey('vsenv'))) if setup_vsenv(need_vsenv): mlog.log(mlog.green('INFO:'), 'automatically activated MSVC compiler environment') cmd: T.List[str] = [] env: T.Optional[T.Dict[str, str]] = None - backend = cdata.get_option(OptionKey('backend')) + backend = cdata.optstore.get_value_for(OptionKey('backend')) assert isinstance(backend, str) mlog.log(mlog.green('INFO:'), 'autodetecting backend as', backend) if backend == 'ninja': diff --git a/mesonbuild/mdevenv.py b/mesonbuild/mdevenv.py index 8c6ce2031..4962d96c6 100644 --- a/mesonbuild/mdevenv.py +++ b/mesonbuild/mdevenv.py @@ -84,9 +84,9 @@ def bash_completion_files(b: build.Build, install_data: 'InstallData') -> T.List dep = PkgConfigDependency('bash-completion', b.environment, {'required': False, 'silent': True, 'version': '>=2.10'}) if dep.found(): - prefix = b.environment.coredata.get_option(OptionKey('prefix')) + prefix = b.environment.coredata.optstore.get_value_for(OptionKey('prefix')) assert isinstance(prefix, str), 'for mypy' - datadir = b.environment.coredata.get_option(OptionKey('datadir')) + datadir = b.environment.coredata.optstore.get_value_for(OptionKey('datadir')) assert isinstance(datadir, str), 'for mypy' datadir_abs = os.path.join(prefix, datadir) completionsdir = dep.get_variable(pkgconfig='completionsdir', pkgconfig_define=(('datadir', datadir_abs),)) @@ -164,7 +164,7 @@ def run(options: argparse.Namespace) -> int: b = build.load(options.builddir) workdir = options.workdir or options.builddir - need_vsenv = T.cast('bool', b.environment.coredata.get_option(OptionKey('vsenv'))) + need_vsenv = T.cast('bool', b.environment.coredata.optstore.get_value_for(OptionKey('vsenv'))) setup_vsenv(need_vsenv) # Call it before get_env to get vsenv vars as well dump_fmt = options.dump_format if options.dump else None devenv, varnames = get_env(b, dump_fmt) diff --git a/mesonbuild/mdist.py b/mesonbuild/mdist.py index 17329009b..0361606a5 100644 --- a/mesonbuild/mdist.py +++ b/mesonbuild/mdist.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: Apache-2.0 # Copyright 2017 The Meson development team -# Copyright © 2023-2024 Intel Corporation +# Copyright © 2023-2025 Intel Corporation from __future__ import annotations @@ -374,7 +374,7 @@ def run(options: argparse.Namespace) -> int: if not buildfile.is_file(): raise MesonException(f'Directory {options.wd!r} does not seem to be a Meson build directory.') b = build.load(options.wd) - need_vsenv = T.cast('bool', b.environment.coredata.get_option(OptionKey('vsenv'))) + need_vsenv = T.cast('bool', b.environment.coredata.optstore.get_value_for(OptionKey('vsenv'))) setup_vsenv(need_vsenv) src_root = b.environment.source_dir bld_root = b.environment.build_dir diff --git a/mesonbuild/minit.py b/mesonbuild/minit.py index 70f184d02..192c75a68 100644 --- a/mesonbuild/minit.py +++ b/mesonbuild/minit.py @@ -193,7 +193,7 @@ def run(options: Arguments) -> int: raise SystemExit b = build.load(options.builddir) - need_vsenv = T.cast('bool', b.environment.coredata.get_option(OptionKey('vsenv'))) + need_vsenv = T.cast('bool', b.environment.coredata.optstore.get_value_for(OptionKey('vsenv'))) vsenv_active = mesonlib.setup_vsenv(need_vsenv) if vsenv_active: mlog.log(mlog.green('INFO:'), 'automatically activated MSVC compiler environment') diff --git a/mesonbuild/minstall.py b/mesonbuild/minstall.py index 2db4472d1..b4d59af75 100644 --- a/mesonbuild/minstall.py +++ b/mesonbuild/minstall.py @@ -869,9 +869,9 @@ def run(opts: 'ArgumentType') -> int: sys.exit('Install data not found. Run this command in build directory root.') if not opts.no_rebuild: b = build.load(opts.wd) - need_vsenv = T.cast('bool', b.environment.coredata.get_option(OptionKey('vsenv'))) + need_vsenv = T.cast('bool', b.environment.coredata.optstore.get_value_for(OptionKey('vsenv'))) setup_vsenv(need_vsenv) - backend = T.cast('str', b.environment.coredata.get_option(OptionKey('backend'))) + backend = T.cast('str', b.environment.coredata.optstore.get_value_for(OptionKey('backend'))) if not rebuild_all(opts.wd, backend): sys.exit(-1) os.chdir(opts.wd) diff --git a/mesonbuild/mintro.py b/mesonbuild/mintro.py index 55cf53d06..87ed66ec8 100644 --- a/mesonbuild/mintro.py +++ b/mesonbuild/mintro.py @@ -164,7 +164,7 @@ def list_install_plan(installdata: backends.InstallData) -> T.Dict[str, T.Dict[s return plan def get_target_dir(coredata: cdata.CoreData, subdir: str) -> str: - if coredata.get_option(OptionKey('layout')) == 'flat': + if coredata.optstore.get_value_for(OptionKey('layout')) == 'flat': return 'meson-out' else: return subdir diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py index fefe41a44..67d16661a 100644 --- a/mesonbuild/modules/__init__.py +++ b/mesonbuild/modules/__init__.py @@ -134,7 +134,7 @@ class ModuleState: def get_option(self, name: str, subproject: str = '', machine: MachineChoice = MachineChoice.HOST) -> ElementaryOptionValues: - return self.environment.coredata.get_option(OptionKey(name, subproject, machine)) + return self.environment.coredata.optstore.get_value_for(OptionKey(name, subproject, machine)) def is_user_defined_option(self, name: str, subproject: str = '', machine: MachineChoice = MachineChoice.HOST, diff --git a/mesonbuild/modules/cmake.py b/mesonbuild/modules/cmake.py index 2168aaa51..1802584cb 100644 --- a/mesonbuild/modules/cmake.py +++ b/mesonbuild/modules/cmake.py @@ -305,7 +305,7 @@ class CmakeModule(ExtensionModule): pkgroot = pkgroot_name = kwargs['install_dir'] if pkgroot is None: - pkgroot = os.path.join(state.environment.coredata.get_option(OptionKey('libdir')), 'cmake', name) + pkgroot = os.path.join(state.environment.coredata.optstore.get_value_for(OptionKey('libdir')), 'cmake', name) pkgroot_name = os.path.join('{libdir}', 'cmake', name) template_file = os.path.join(self.cmake_root, 'Modules', f'BasicConfigVersion-{compatibility}.cmake.in') @@ -376,14 +376,14 @@ class CmakeModule(ExtensionModule): install_dir = kwargs['install_dir'] if install_dir is None: - install_dir = os.path.join(state.environment.coredata.get_option(OptionKey('libdir')), 'cmake', name) + install_dir = os.path.join(state.environment.coredata.optstore.get_value_for(OptionKey('libdir')), 'cmake', name) conf = kwargs['configuration'] if isinstance(conf, dict): FeatureNew.single_use('cmake.configure_package_config_file dict as configuration', '0.62.0', state.subproject, location=state.current_node) conf = build.ConfigurationData(conf) - prefix = state.environment.coredata.get_option(OptionKey('prefix')) + prefix = state.environment.coredata.optstore.get_value_for(OptionKey('prefix')) abs_install_dir = install_dir if not os.path.isabs(abs_install_dir): abs_install_dir = os.path.join(prefix, install_dir) diff --git a/mesonbuild/modules/external_project.py b/mesonbuild/modules/external_project.py index 57a1819a3..339d0003f 100644 --- a/mesonbuild/modules/external_project.py +++ b/mesonbuild/modules/external_project.py @@ -75,16 +75,16 @@ class ExternalProject(NewExtensionModule): self.src_dir = Path(self.env.get_source_dir(), self.subdir) self.build_dir = Path(self.env.get_build_dir(), self.subdir, 'build') self.install_dir = Path(self.env.get_build_dir(), self.subdir, 'dist') - _p = self.env.coredata.get_option(OptionKey('prefix')) + _p = self.env.coredata.optstore.get_value_for(OptionKey('prefix')) assert isinstance(_p, str), 'for mypy' self.prefix = Path(_p) - _l = self.env.coredata.get_option(OptionKey('libdir')) + _l = self.env.coredata.optstore.get_value_for(OptionKey('libdir')) assert isinstance(_l, str), 'for mypy' self.libdir = Path(_l) - _l = self.env.coredata.get_option(OptionKey('bindir')) + _l = self.env.coredata.optstore.get_value_for(OptionKey('bindir')) assert isinstance(_l, str), 'for mypy' self.bindir = Path(_l) - _i = self.env.coredata.get_option(OptionKey('includedir')) + _i = self.env.coredata.optstore.get_value_for(OptionKey('includedir')) assert isinstance(_i, str), 'for mypy' self.includedir = Path(_i) self.name = self.src_dir.name diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py index e3b1f3d7c..926017a33 100644 --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py @@ -522,7 +522,7 @@ class GnomeModule(ExtensionModule): if gresource: # Only one target for .gresource files return ModuleReturnValue(target_c, [target_c]) - install_dir = kwargs['install_dir'] or state.environment.coredata.get_option(OptionKey('includedir')) + install_dir = kwargs['install_dir'] or state.environment.coredata.optstore.get_value_for(OptionKey('includedir')) assert isinstance(install_dir, str), 'for mypy' target_h = GResourceHeaderTarget( f'{target_name}_h', @@ -1655,7 +1655,7 @@ class GnomeModule(ExtensionModule): targets = [] install_header = kwargs['install_header'] - install_dir = kwargs['install_dir'] or state.environment.coredata.get_option(OptionKey('includedir')) + install_dir = kwargs['install_dir'] or state.environment.coredata.optstore.get_value_for(OptionKey('includedir')) assert isinstance(install_dir, str), 'for mypy' output = namebase + '.c' @@ -1967,7 +1967,7 @@ class GnomeModule(ExtensionModule): ) -> build.CustomTarget: real_cmd: T.List[T.Union[str, 'ToolType']] = [self._find_tool(state, 'glib-mkenums')] real_cmd.extend(cmd) - _install_dir = install_dir or state.environment.coredata.get_option(OptionKey('includedir')) + _install_dir = install_dir or state.environment.coredata.optstore.get_value_for(OptionKey('includedir')) assert isinstance(_install_dir, str), 'for mypy' return CustomTarget( @@ -2179,7 +2179,7 @@ class GnomeModule(ExtensionModule): cmd.append(gir_file) vapi_output = library + '.vapi' - datadir = state.environment.coredata.get_option(OptionKey('datadir')) + datadir = state.environment.coredata.optstore.get_value_for(OptionKey('datadir')) assert isinstance(datadir, str), 'for mypy' install_dir = kwargs['install_dir'] or os.path.join(datadir, 'vala', 'vapi') diff --git a/mesonbuild/modules/hotdoc.py b/mesonbuild/modules/hotdoc.py index 50b5fe6f2..5099b41be 100644 --- a/mesonbuild/modules/hotdoc.py +++ b/mesonbuild/modules/hotdoc.py @@ -331,7 +331,7 @@ class HotdocTargetBuilder: for path in self.include_paths: self.cmd.extend(['--include-path', path]) - if self.state.environment.coredata.get_option(OptionKey('werror', subproject=self.state.subproject)): + if self.state.environment.coredata.optstore.get_value_for(OptionKey('werror', subproject=self.state.subproject)): self.cmd.append('--fatal-warnings') self.generate_hotdoc_config() diff --git a/mesonbuild/modules/i18n.py b/mesonbuild/modules/i18n.py index 551e0b36f..2e59b2566 100644 --- a/mesonbuild/modules/i18n.py +++ b/mesonbuild/modules/i18n.py @@ -278,7 +278,7 @@ class I18nModule(ExtensionModule): targets.append(pottarget) install = kwargs['install'] - install_dir = kwargs['install_dir'] or state.environment.coredata.get_option(OptionKey('localedir')) + install_dir = kwargs['install_dir'] or state.environment.coredata.optstore.get_value_for(OptionKey('localedir')) assert isinstance(install_dir, str), 'for mypy' if not languages: languages = read_linguas(path.join(state.environment.source_dir, state.subdir)) diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py index 974d2521d..cc0450a52 100644 --- a/mesonbuild/modules/pkgconfig.py +++ b/mesonbuild/modules/pkgconfig.py @@ -490,7 +490,7 @@ class PkgConfigModule(NewExtensionModule): srcdir = PurePath(state.environment.get_source_dir()) else: outdir = state.environment.scratch_dir - prefix = PurePath(_as_str(coredata.get_option(OptionKey('prefix')))) + prefix = PurePath(_as_str(coredata.optstore.get_value_for(OptionKey('prefix')))) if pkgroot: pkgroot_ = PurePath(pkgroot) if not pkgroot_.is_absolute(): @@ -507,7 +507,7 @@ class PkgConfigModule(NewExtensionModule): if optname == 'prefix': ofile.write('prefix={}\n'.format(self._escape(prefix))) else: - dirpath = PurePath(_as_str(coredata.get_option(OptionKey(optname)))) + dirpath = PurePath(_as_str(coredata.optstore.get_value_for(OptionKey(optname)))) ofile.write('{}={}\n'.format(optname, self._escape('${prefix}' / dirpath))) if uninstalled and not dataonly: ofile.write('srcdir={}\n'.format(self._escape(srcdir))) @@ -703,13 +703,13 @@ class PkgConfigModule(NewExtensionModule): if pkgroot is None: m = state.environment.machines.host if m.is_freebsd(): - pkgroot = os.path.join(_as_str(state.environment.coredata.get_option(OptionKey('prefix'))), 'libdata', 'pkgconfig') + pkgroot = os.path.join(_as_str(state.environment.coredata.optstore.get_value_for(OptionKey('prefix'))), 'libdata', 'pkgconfig') pkgroot_name = os.path.join('{prefix}', 'libdata', 'pkgconfig') elif m.is_haiku(): - pkgroot = os.path.join(_as_str(state.environment.coredata.get_option(OptionKey('prefix'))), 'develop', 'lib', 'pkgconfig') + pkgroot = os.path.join(_as_str(state.environment.coredata.optstore.get_value_for(OptionKey('prefix'))), 'develop', 'lib', 'pkgconfig') pkgroot_name = os.path.join('{prefix}', 'develop', 'lib', 'pkgconfig') else: - pkgroot = os.path.join(_as_str(state.environment.coredata.get_option(OptionKey('libdir'))), 'pkgconfig') + pkgroot = os.path.join(_as_str(state.environment.coredata.optstore.get_value_for(OptionKey('libdir'))), 'pkgconfig') pkgroot_name = os.path.join('{libdir}', 'pkgconfig') relocatable = state.get_option('pkgconfig.relocatable') self._generate_pkgconfig_file(state, deps, subdirs, name, description, url, diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py index 1b7a05640..2a7e685c1 100644 --- a/mesonbuild/modules/python.py +++ b/mesonbuild/modules/python.py @@ -113,7 +113,7 @@ class PythonInstallation(_ExternalProgramHolder['PythonExternalProgram']): def __init__(self, python: 'PythonExternalProgram', interpreter: 'Interpreter'): _ExternalProgramHolder.__init__(self, python, interpreter) info = python.info - prefix = self.interpreter.environment.coredata.get_option(OptionKey('prefix')) + prefix = self.interpreter.environment.coredata.optstore.get_value_for(OptionKey('prefix')) assert isinstance(prefix, str), 'for mypy' self.variables = info['variables'] self.suffix = info['suffix'] @@ -169,7 +169,7 @@ class PythonInstallation(_ExternalProgramHolder['PythonExternalProgram']): self.current_node) limited_api_version = kwargs.pop('limited_api') - allow_limited_api = self.interpreter.environment.coredata.get_option(OptionKey('python.allow_limited_api')) + allow_limited_api = self.interpreter.environment.coredata.optstore.get_value_for(OptionKey('python.allow_limited_api')) if limited_api_version != '' and allow_limited_api: target_suffix = self.limited_api_suffix @@ -374,7 +374,7 @@ class PythonModule(ExtensionModule): def _get_install_scripts(self) -> T.List[mesonlib.ExecutableSerialisation]: backend = self.interpreter.backend ret = [] - optlevel = self.interpreter.environment.coredata.get_option(OptionKey('python.bytecompile')) + optlevel = self.interpreter.environment.coredata.optstore.get_value_for(OptionKey('python.bytecompile')) if optlevel == -1: return ret if not any(PythonExternalProgram.run_bytecompile.values()): diff --git a/mesonbuild/mtest.py b/mesonbuild/mtest.py index 673f433fd..9d16e6358 100644 --- a/mesonbuild/mtest.py +++ b/mesonbuild/mtest.py @@ -2273,11 +2273,11 @@ def run(options: argparse.Namespace) -> int: return 1 b = build.load(options.wd) - need_vsenv = T.cast('bool', b.environment.coredata.get_option(OptionKey('vsenv'))) + need_vsenv = T.cast('bool', b.environment.coredata.optstore.get_value_for(OptionKey('vsenv'))) setup_vsenv(need_vsenv) if not options.no_rebuild: - backend = b.environment.coredata.get_option(OptionKey('backend')) + backend = b.environment.coredata.optstore.get_value_for(OptionKey('backend')) if backend == 'none': # nothing to build... options.no_rebuild = True diff --git a/mesonbuild/munstable_coredata.py b/mesonbuild/munstable_coredata.py index 409b514b6..b647dd8fc 100644 --- a/mesonbuild/munstable_coredata.py +++ b/mesonbuild/munstable_coredata.py @@ -53,7 +53,7 @@ def run(options): print('') coredata = cdata.load(options.builddir) - backend = coredata.get_option(OptionKey('backend')) + backend = coredata.optstore.get_value_for(OptionKey('backend')) for k, v in sorted(coredata.__dict__.items()): if k in {'backend_options', 'base_options', 'builtins', 'compiler_options', 'user_options'}: # use `meson configure` to view these diff --git a/mesonbuild/scripts/regen_checker.py b/mesonbuild/scripts/regen_checker.py index fc69ed7d5..987460733 100644 --- a/mesonbuild/scripts/regen_checker.py +++ b/mesonbuild/scripts/regen_checker.py @@ -44,7 +44,7 @@ def run(args: T.List[str]) -> int: with open(coredata_file, 'rb') as f: coredata = pickle.load(f) assert isinstance(coredata, CoreData) - backend = coredata.get_option(OptionKey('backend')) + backend = coredata.optstore.get_value_for(OptionKey('backend')) assert isinstance(backend, str) regen_timestamp = os.stat(dumpfile).st_mtime if need_regen(regeninfo, regen_timestamp): -- cgit v1.2.3