Skip to content

Commit 6270123

Browse files
committed
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.
1 parent 43ea11e commit 6270123

37 files changed

+97
-100
lines changed

mesonbuild/ast/introspection.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# SPDX-License-Identifier: Apache-2.0
22
# Copyright 2018 The Meson development team
3-
# Copyright © 2024 Intel Corporation
3+
# Copyright © 2024-2025 Intel Corporation
44

55
# This class contains the basic functionality needed to run any interpreter
66
# or an interpreter-based tool
@@ -313,7 +313,7 @@ def traverse_nodes(inqueue: T.List[BaseNode]) -> T.List[BaseNode]:
313313
return new_target
314314

315315
def build_library(self, node: BaseNode, args: T.List[TYPE_var], kwargs: T.Dict[str, TYPE_var]) -> T.Optional[T.Dict[str, T.Any]]:
316-
default_library = self.coredata.get_option(OptionKey('default_library'))
316+
default_library = self.coredata.optstore.get_value_for(OptionKey('default_library'))
317317
if default_library == 'shared':
318318
return self.build_target(node, args, kwargs, SharedLibrary)
319319
elif default_library == 'static':

mesonbuild/backend/backends.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ def get_target_dir(self, target: T.Union[build.Target, build.CustomTargetIndex])
373373
if isinstance(target, build.RunTarget):
374374
# this produces no output, only a dummy top-level name
375375
dirname = ''
376-
elif self.environment.coredata.get_option(OptionKey('layout')) == 'mirror':
376+
elif self.environment.coredata.optstore.get_value_for(OptionKey('layout')) == 'mirror':
377377
dirname = target.get_subdir()
378378
else:
379379
dirname = 'meson-out'
@@ -815,7 +815,7 @@ def rpaths_for_non_system_absolute_shared_libraries(self, target: build.BuildTar
815815
def determine_rpath_dirs(self, target: T.Union[build.BuildTarget, build.CustomTarget, build.CustomTargetIndex]
816816
) -> T.Tuple[str, ...]:
817817
result: OrderedSet[str]
818-
if self.environment.coredata.get_option(OptionKey('layout')) == 'mirror':
818+
if self.environment.coredata.optstore.get_value_for(OptionKey('layout')) == 'mirror':
819819
# Need a copy here
820820
result = OrderedSet(target.get_link_dep_subdirs())
821821
else:
@@ -1335,7 +1335,7 @@ def construct_target_rel_paths(self, t: T.Union[build.Target, build.CustomTarget
13351335
def generate_depmf_install(self, d: InstallData) -> None:
13361336
depmf_path = self.build.dep_manifest_name
13371337
if depmf_path is None:
1338-
option_dir = self.environment.coredata.get_option(OptionKey('licensedir'))
1338+
option_dir = self.environment.coredata.optstore.get_value_for(OptionKey('licensedir'))
13391339
assert isinstance(option_dir, str), 'for mypy'
13401340
if option_dir:
13411341
depmf_path = os.path.join(option_dir, 'depmf.json')
@@ -1666,7 +1666,7 @@ def create_install_data(self) -> InstallData:
16661666
# TODO go through all candidates, like others
16671667
strip_bin = [detect.defaults['strip'][0]]
16681668

1669-
umask = self.environment.coredata.get_option(OptionKey('install_umask'))
1669+
umask = self.environment.coredata.optstore.get_value_for(OptionKey('install_umask'))
16701670
assert isinstance(umask, (str, int)), 'for mypy'
16711671

16721672
d = InstallData(self.environment.get_source_dir(),
@@ -1698,7 +1698,7 @@ def guess_install_tag(self, fname: str, outdir: T.Optional[str] = None) -> T.Opt
16981698
bindir = Path(prefix, self.environment.get_bindir())
16991699
libdir = Path(prefix, self.environment.get_libdir())
17001700
incdir = Path(prefix, self.environment.get_includedir())
1701-
_ldir = self.environment.coredata.get_option(OptionKey('localedir'))
1701+
_ldir = self.environment.coredata.optstore.get_value_for(OptionKey('localedir'))
17021702
assert isinstance(_ldir, str), 'for mypy'
17031703
localedir = Path(prefix, _ldir)
17041704
dest_path = Path(prefix, outdir, Path(fname).name) if outdir else Path(prefix, fname)

mesonbuild/backend/ninjabackend.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -614,7 +614,7 @@ def generate(self, capture: bool = False, vslite_ctx: T.Optional[T.Dict] = None)
614614
# so no harm in catching and reporting something unexpected.
615615
raise MesonBugException('We do not expect the ninja backend to be given a valid \'vslite_ctx\'')
616616
ninja = environment.detect_ninja_command_and_version(log=True)
617-
if self.environment.coredata.get_option(OptionKey('vsenv')):
617+
if self.environment.coredata.optstore.get_value_for(OptionKey('vsenv')):
618618
builddir = Path(self.environment.get_build_dir())
619619
try:
620620
# For prettier printing, reduce to a relative path. If
@@ -1340,9 +1340,9 @@ def generate_install(self) -> None:
13401340
def generate_tests(self) -> None:
13411341
self.serialize_tests()
13421342
cmd = self.environment.get_build_command(True) + ['test', '--no-rebuild']
1343-
if not self.environment.coredata.get_option(OptionKey('stdsplit')):
1343+
if not self.environment.coredata.optstore.get_value_for(OptionKey('stdsplit')):
13441344
cmd += ['--no-stdsplit']
1345-
if self.environment.coredata.get_option(OptionKey('errorlogs')):
1345+
if self.environment.coredata.optstore.get_value_for(OptionKey('errorlogs')):
13461346
cmd += ['--print-errorlogs']
13471347
elem = self.create_phony_target('test', 'CUSTOM_COMMAND', ['all', 'meson-test-prereq', 'PHONY'])
13481348
elem.add_item('COMMAND', cmd)

mesonbuild/backend/vs2010backend.py

+10-10
Original file line numberDiff line numberDiff line change
@@ -267,11 +267,11 @@ def generate(self,
267267
else:
268268
raise MesonException('Unsupported Visual Studio platform: ' + build_machine)
269269

270-
self.buildtype = self.environment.coredata.get_option(OptionKey('buildtype'))
271-
self.optimization = self.environment.coredata.get_option(OptionKey('optimization'))
272-
self.debug = self.environment.coredata.get_option(OptionKey('debug'))
270+
self.buildtype = self.environment.coredata.optstore.get_value_for(OptionKey('buildtype'))
271+
self.optimization = self.environment.coredata.optstore.get_value_for(OptionKey('optimization'))
272+
self.debug = self.environment.coredata.optstore.get_value_for(OptionKey('debug'))
273273
try:
274-
self.sanitize = self.environment.coredata.get_option(OptionKey('b_sanitize'))
274+
self.sanitize = self.environment.coredata.optstore.get_value_for(OptionKey('b_sanitize'))
275275
except KeyError:
276276
self.sanitize = []
277277
sln_filename = os.path.join(self.environment.get_build_dir(), self.build.project_name + '.sln')
@@ -422,7 +422,7 @@ def generate_solution(self, sln_filename: str, projlist: T.List[Project]) -> Non
422422
ofile.write('# Visual Studio %s\n' % self.sln_version_comment)
423423
prj_templ = 'Project("{%s}") = "%s", "%s", "{%s}"\n'
424424
for prj in projlist:
425-
if self.environment.coredata.get_option(OptionKey('layout')) == 'mirror':
425+
if self.environment.coredata.optstore.get_value_for(OptionKey('layout')) == 'mirror':
426426
self.generate_solution_dirs(ofile, prj[1].parents)
427427
target = self.build.targets[prj[0]]
428428
lang = 'default'
@@ -1791,7 +1791,7 @@ def path_normalize_add(path, lis):
17911791
# build system as possible.
17921792
self.add_target_deps(root, target)
17931793
self._prettyprint_vcxproj_xml(ET.ElementTree(root), ofname)
1794-
if self.environment.coredata.get_option(OptionKey('layout')) == 'mirror':
1794+
if self.environment.coredata.optstore.get_value_for(OptionKey('layout')) == 'mirror':
17951795
self.gen_vcxproj_filters(target, ofname)
17961796
return True
17971797

@@ -1960,9 +1960,9 @@ def gen_testproj(self):
19601960
meson_build_dir_for_buildtype = build_dir_tail[:-2] + buildtype # Get the buildtype suffixed 'builddir_[debug/release/etc]' from 'builddir_vs', for example.
19611961
proj_to_build_dir_for_buildtype = str(os.path.join(proj_to_multiconfigured_builds_parent_dir, meson_build_dir_for_buildtype))
19621962
test_cmd = f'{nmake_base_meson_command} test -C "{proj_to_build_dir_for_buildtype}" --no-rebuild'
1963-
if not self.environment.coredata.get_option(OptionKey('stdsplit')):
1963+
if not self.environment.coredata.optstore.get_value_for(OptionKey('stdsplit')):
19641964
test_cmd += ' --no-stdsplit'
1965-
if self.environment.coredata.get_option(OptionKey('errorlogs')):
1965+
if self.environment.coredata.optstore.get_value_for(OptionKey('errorlogs')):
19661966
test_cmd += ' --print-errorlogs'
19671967
condition = f'\'$(Configuration)|$(Platform)\'==\'{buildtype}|{self.platform}\''
19681968
prop_group = ET.SubElement(root, 'PropertyGroup', Condition=condition)
@@ -1984,9 +1984,9 @@ def gen_testproj(self):
19841984
ET.SubElement(midl, 'ProxyFileName').text = '%(Filename)_p.c'
19851985
# FIXME: No benchmarks?
19861986
test_command = self.environment.get_build_command() + ['test', '--no-rebuild']
1987-
if not self.environment.coredata.get_option(OptionKey('stdsplit')):
1987+
if not self.environment.coredata.optstore.get_value_for(OptionKey('stdsplit')):
19881988
test_command += ['--no-stdsplit']
1989-
if self.environment.coredata.get_option(OptionKey('errorlogs')):
1989+
if self.environment.coredata.optstore.get_value_for(OptionKey('errorlogs')):
19901990
test_command += ['--print-errorlogs']
19911991
self.serialize_tests()
19921992
self.add_custom_build(root, 'run_tests', '"%s"' % ('" "'.join(test_command)))

mesonbuild/backend/xcodebackend.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ class XCodeBackend(backends.Backend):
230230
def __init__(self, build: T.Optional[build.Build], interpreter: T.Optional[Interpreter]):
231231
super().__init__(build, interpreter)
232232
self.project_uid = self.environment.coredata.lang_guids['default'].replace('-', '')[:24]
233-
self.buildtype = T.cast('str', self.environment.coredata.get_option(OptionKey('buildtype')))
233+
self.buildtype = T.cast('str', self.environment.coredata.optstore.get_value_for(OptionKey('buildtype')))
234234
self.project_conflist = self.gen_id()
235235
self.maingroup_id = self.gen_id()
236236
self.all_id = self.gen_id()
@@ -272,7 +272,7 @@ def gen_id(self) -> str:
272272

273273
@functools.lru_cache(maxsize=None)
274274
def get_target_dir(self, target: T.Union[build.Target, build.CustomTargetIndex]) -> str:
275-
dirname = os.path.join(target.get_subdir(), T.cast('str', self.environment.coredata.get_option(OptionKey('buildtype'))))
275+
dirname = os.path.join(target.get_subdir(), T.cast('str', self.environment.coredata.optstore.get_value_for(OptionKey('buildtype'))))
276276
#os.makedirs(os.path.join(self.environment.get_build_dir(), dirname), exist_ok=True)
277277
return dirname
278278

mesonbuild/build.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -1726,7 +1726,7 @@ def process_vs_module_defs_kw(self, kwargs: T.Dict[str, T.Any]) -> None:
17261726
self.process_link_depends(path)
17271727

17281728
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]:
1729-
bl_type = self.environment.coredata.get_option(OptionKey('default_both_libraries'))
1729+
bl_type = self.environment.coredata.optstore.get_value_for(OptionKey('default_both_libraries'))
17301730
if bl_type == 'auto':
17311731
if isinstance(self, StaticLibrary):
17321732
bl_type = 'static'
@@ -2026,7 +2026,7 @@ def post_init(self) -> None:
20262026
machine.is_windows()
20272027
and ('cs' in self.compilers or self.uses_rust() or self.get_using_msvc())
20282028
# .pdb file is created only when debug symbols are enabled
2029-
and self.environment.coredata.get_option(OptionKey("debug"))
2029+
and self.environment.coredata.optstore.get_value_for(OptionKey("debug"))
20302030
)
20312031
if create_debug_file:
20322032
# If the target is has a standard exe extension (i.e. 'foo.exe'),
@@ -2308,14 +2308,14 @@ def determine_filenames(self):
23082308
# Import library is called foo.dll.lib
23092309
import_filename_tpl = '{0.prefix}{0.name}.dll.lib'
23102310
# .pdb file is only created when debug symbols are enabled
2311-
create_debug_file = self.environment.coredata.get_option(OptionKey("debug"))
2311+
create_debug_file = self.environment.coredata.optstore.get_value_for(OptionKey("debug"))
23122312
elif self.get_using_msvc():
23132313
# Shared library is of the form foo.dll
23142314
prefix = ''
23152315
# Import library is called foo.lib
23162316
import_filename_tpl = '{0.prefix}{0.name}.lib'
23172317
# .pdb file is only created when debug symbols are enabled
2318-
create_debug_file = self.environment.coredata.get_option(OptionKey("debug"))
2318+
create_debug_file = self.environment.coredata.optstore.get_value_for(OptionKey("debug"))
23192319
# Assume GCC-compatible naming
23202320
else:
23212321
# Shared library is of the form libfoo.dll

mesonbuild/cmake/common.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ def _flags_to_list(raw: str) -> T.List[str]:
105105
return res
106106

107107
def cmake_get_generator_args(env: 'Environment') -> T.List[str]:
108-
backend_name = env.coredata.get_option(OptionKey('backend'))
108+
backend_name = env.coredata.optstore.get_value_for(OptionKey('backend'))
109109
assert isinstance(backend_name, str)
110110
assert backend_name in backend_generator_map
111111
return ['-G', backend_generator_map[backend_name]]

mesonbuild/cmake/interpreter.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -828,7 +828,7 @@ def configure(self, extra_cmake_options: T.List[str]) -> CMakeExecutor:
828828
cmake_args += extra_cmake_options
829829
if not any(arg.startswith('-DCMAKE_BUILD_TYPE=') for arg in cmake_args):
830830
# Our build type is favored over any CMAKE_BUILD_TYPE environment variable
831-
buildtype = T.cast('str', self.env.coredata.get_option(OptionKey('buildtype')))
831+
buildtype = T.cast('str', self.env.coredata.optstore.get_value_for(OptionKey('buildtype')))
832832
if buildtype in BUILDTYPE_MAP:
833833
cmake_args += [f'-DCMAKE_BUILD_TYPE={BUILDTYPE_MAP[buildtype]}']
834834
trace_args = self.trace.trace_args()

mesonbuild/coredata.py

-3
Original file line numberDiff line numberDiff line change
@@ -397,9 +397,6 @@ def init_backend_options(self, backend_name: str) -> None:
397397
'Default project to execute in Visual Studio',
398398
''))
399399

400-
def get_option(self, key: OptionKey) -> ElementaryOptionValues:
401-
return self.optstore.get_value_for(key.name, key.subproject)
402-
403400
def get_option_for_target(self, target: 'BuildTarget', key: T.Union[str, OptionKey]) -> ElementaryOptionValues:
404401
if isinstance(key, str):
405402
assert ':' not in key

mesonbuild/dependencies/base.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# SPDX-License-Identifier: Apache-2.0
22
# Copyright 2013-2018 The Meson development team
3-
# Copyright © 2024 Intel Corporation
3+
# Copyright © 2024-2025 Intel Corporation
44

55
# This file contains the detection logic for external dependencies.
66
# Custom logic for several other packages are in separate files.
@@ -403,7 +403,7 @@ def __init__(self, type_name: DependencyTypeName, environment: 'Environment', kw
403403
self.version_reqs: T.Optional[T.List[str]] = version_reqs
404404
self.required = kwargs.get('required', True)
405405
self.silent = kwargs.get('silent', False)
406-
self.static = kwargs.get('static', self.env.coredata.get_option(OptionKey('prefer_static')))
406+
self.static = kwargs.get('static', self.env.coredata.optstore.get_value_for(OptionKey('prefer_static')))
407407
self.libtype = LibType.STATIC if self.static else LibType.PREFER_SHARED
408408
if not isinstance(self.static, bool):
409409
raise DependencyException('Static keyword must be boolean')

mesonbuild/dependencies/boost.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ def get_link_args(self) -> T.List[str]:
341341
class BoostDependency(SystemDependency):
342342
def __init__(self, environment: Environment, kwargs: T.Dict[str, T.Any]) -> None:
343343
super().__init__('boost', environment, kwargs, language='cpp')
344-
buildtype = environment.coredata.get_option(OptionKey('buildtype'))
344+
buildtype = environment.coredata.optstore.get_value_for(OptionKey('buildtype'))
345345
assert isinstance(buildtype, str)
346346
self.debug = buildtype.startswith('debug')
347347
self.multithreading = kwargs.get('threading', 'multi') == 'multi'

mesonbuild/dependencies/dub.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ def __init__(self, name: str, environment: 'Environment', kwargs: T.Dict[str, T.
121121
dub_arch = self.compiler.arch
122122

123123
# we need to know the build type as well
124-
dub_buildtype = str(environment.coredata.get_option(OptionKey('buildtype')))
124+
dub_buildtype = str(environment.coredata.optstore.get_value_for(OptionKey('buildtype')))
125125
# MESON types: choices=['plain', 'debug', 'debugoptimized', 'release', 'minsize', 'custom'])),
126126
# DUB types: debug (default), plain, release, release-debug, release-nobounds, unittest, profile, profile-gc,
127127
# docs, ddox, cov, unittest-cov, syntax and custom

mesonbuild/dependencies/misc.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,7 @@ def shaderc_factory(env: 'Environment',
572572
shared_libs = ['shaderc']
573573
static_libs = ['shaderc_combined', 'shaderc_static']
574574

575-
if kwargs.get('static', env.coredata.get_option(OptionKey('prefer_static'))):
575+
if kwargs.get('static', env.coredata.optstore.get_value_for(OptionKey('prefer_static'))):
576576
c = [functools.partial(PkgConfigDependency, name, env, kwargs)
577577
for name in static_libs + shared_libs]
578578
else:

mesonbuild/dependencies/python.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -244,9 +244,9 @@ def get_windows_link_args(self, limited_api: bool) -> T.Optional[T.List[str]]:
244244
# Python itself (except with pybind11, which has an ugly
245245
# hack to work around this) - so emit a warning to explain
246246
# the cause of the expected link error.
247-
buildtype = self.env.coredata.get_option(OptionKey('buildtype'))
247+
buildtype = self.env.coredata.optstore.get_value_for(OptionKey('buildtype'))
248248
assert isinstance(buildtype, str)
249-
debug = self.env.coredata.get_option(OptionKey('debug'))
249+
debug = self.env.coredata.optstore.get_value_for(OptionKey('debug'))
250250
# `debugoptimized` buildtype may not set debug=True currently, see gh-11645
251251
is_debug_build = debug or buildtype == 'debug'
252252
vscrt_debug = False

mesonbuild/dependencies/scalapack.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def scalapack_factory(env: 'Environment', for_machine: 'MachineChoice',
2828
candidates: T.List['DependencyGenerator'] = []
2929

3030
if DependencyMethods.PKGCONFIG in methods:
31-
static_opt = kwargs.get('static', env.coredata.get_option(OptionKey('prefer_static')))
31+
static_opt = kwargs.get('static', env.coredata.optstore.get_value_for(OptionKey('prefer_static')))
3232
mkl = 'mkl-static-lp64-iomp' if static_opt else 'mkl-dynamic-lp64-iomp'
3333
candidates.append(functools.partial(
3434
MKLPkgConfigDependency, mkl, env, kwargs))

mesonbuild/environment.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -964,25 +964,25 @@ def get_static_lib_dir(self) -> str:
964964
return self.get_libdir()
965965

966966
def get_prefix(self) -> str:
967-
return _as_str(self.coredata.get_option(OptionKey('prefix')))
967+
return _as_str(self.coredata.optstore.get_value_for(OptionKey('prefix')))
968968

969969
def get_libdir(self) -> str:
970-
return _as_str(self.coredata.get_option(OptionKey('libdir')))
970+
return _as_str(self.coredata.optstore.get_value_for(OptionKey('libdir')))
971971

972972
def get_libexecdir(self) -> str:
973-
return _as_str(self.coredata.get_option(OptionKey('libexecdir')))
973+
return _as_str(self.coredata.optstore.get_value_for(OptionKey('libexecdir')))
974974

975975
def get_bindir(self) -> str:
976-
return _as_str(self.coredata.get_option(OptionKey('bindir')))
976+
return _as_str(self.coredata.optstore.get_value_for(OptionKey('bindir')))
977977

978978
def get_includedir(self) -> str:
979-
return _as_str(self.coredata.get_option(OptionKey('includedir')))
979+
return _as_str(self.coredata.optstore.get_value_for(OptionKey('includedir')))
980980

981981
def get_mandir(self) -> str:
982-
return _as_str(self.coredata.get_option(OptionKey('mandir')))
982+
return _as_str(self.coredata.optstore.get_value_for(OptionKey('mandir')))
983983

984984
def get_datadir(self) -> str:
985-
return _as_str(self.coredata.get_option(OptionKey('datadir')))
985+
return _as_str(self.coredata.optstore.get_value_for(OptionKey('datadir')))
986986

987987
def get_compiler_system_lib_dirs(self, for_machine: MachineChoice) -> T.List[str]:
988988
for comp in self.coredata.compilers[for_machine].values():

0 commit comments

Comments
 (0)