summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2025-03-04 08:14:38 -0800
committerEli Schwartz <eschwartz93@gmail.com>2025-03-10 14:14:25 -0400
commit4fa52925459dac650bf053715987ee7beb3b23c1 (patch)
tree1ac2f3732063ad936eb6ef9dc6009c8c955527af
parent43ea11ea49948635b1d672fef1bd397233b65b19 (diff)
downloadmeson-4fa52925459dac650bf053715987ee7beb3b23c1.tar.gz
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.
-rw-r--r--mesonbuild/ast/introspection.py4
-rw-r--r--mesonbuild/backend/backends.py10
-rw-r--r--mesonbuild/backend/ninjabackend.py6
-rw-r--r--mesonbuild/backend/vs2010backend.py20
-rw-r--r--mesonbuild/backend/xcodebackend.py4
-rw-r--r--mesonbuild/build.py8
-rw-r--r--mesonbuild/cmake/common.py2
-rw-r--r--mesonbuild/cmake/interpreter.py2
-rw-r--r--mesonbuild/coredata.py3
-rw-r--r--mesonbuild/dependencies/base.py4
-rw-r--r--mesonbuild/dependencies/boost.py2
-rw-r--r--mesonbuild/dependencies/dub.py2
-rw-r--r--mesonbuild/dependencies/misc.py2
-rw-r--r--mesonbuild/dependencies/python.py4
-rw-r--r--mesonbuild/dependencies/scalapack.py2
-rw-r--r--mesonbuild/environment.py14
-rw-r--r--mesonbuild/interpreter/compiler.py4
-rw-r--r--mesonbuild/interpreter/dependencyfallbacks.py6
-rw-r--r--mesonbuild/interpreter/interpreter.py18
-rw-r--r--mesonbuild/interpreter/mesonmain.py6
-rw-r--r--mesonbuild/mcompile.py4
-rw-r--r--mesonbuild/mdevenv.py6
-rw-r--r--mesonbuild/mdist.py4
-rw-r--r--mesonbuild/minit.py2
-rw-r--r--mesonbuild/minstall.py4
-rw-r--r--mesonbuild/mintro.py2
-rw-r--r--mesonbuild/modules/__init__.py2
-rw-r--r--mesonbuild/modules/cmake.py6
-rw-r--r--mesonbuild/modules/external_project.py8
-rw-r--r--mesonbuild/modules/gnome.py8
-rw-r--r--mesonbuild/modules/hotdoc.py2
-rw-r--r--mesonbuild/modules/i18n.py2
-rw-r--r--mesonbuild/modules/pkgconfig.py10
-rw-r--r--mesonbuild/modules/python.py6
-rw-r--r--mesonbuild/mtest.py4
-rw-r--r--mesonbuild/munstable_coredata.py2
-rw-r--r--mesonbuild/scripts/regen_checker.py2
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):