Skip to content

Commit 12e5d0e

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 6b1a845 commit 12e5d0e

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
@@ -372,7 +372,7 @@ def get_target_dir(self, target: T.Union[build.Target, build.CustomTargetIndex])
372372
if isinstance(target, build.RunTarget):
373373
# this produces no output, only a dummy top-level name
374374
dirname = ''
375-
elif self.environment.coredata.get_option(OptionKey('layout')) == 'mirror':
375+
elif self.environment.coredata.optstore.get_value_for(OptionKey('layout')) == 'mirror':
376376
dirname = target.get_subdir()
377377
else:
378378
dirname = 'meson-out'
@@ -819,7 +819,7 @@ def rpaths_for_non_system_absolute_shared_libraries(self, target: build.BuildTar
819819
def determine_rpath_dirs(self, target: T.Union[build.BuildTarget, build.CustomTarget, build.CustomTargetIndex]
820820
) -> T.Tuple[str, ...]:
821821
result: OrderedSet[str]
822-
if self.environment.coredata.get_option(OptionKey('layout')) == 'mirror':
822+
if self.environment.coredata.optstore.get_value_for(OptionKey('layout')) == 'mirror':
823823
# Need a copy here
824824
result = OrderedSet(target.get_link_dep_subdirs())
825825
else:
@@ -1337,7 +1337,7 @@ def construct_target_rel_paths(self, t: T.Union[build.Target, build.CustomTarget
13371337
def generate_depmf_install(self, d: InstallData) -> None:
13381338
depmf_path = self.build.dep_manifest_name
13391339
if depmf_path is None:
1340-
option_dir = self.environment.coredata.get_option(OptionKey('licensedir'))
1340+
option_dir = self.environment.coredata.optstore.get_value_for(OptionKey('licensedir'))
13411341
assert isinstance(option_dir, str), 'for mypy'
13421342
if option_dir:
13431343
depmf_path = os.path.join(option_dir, 'depmf.json')
@@ -1668,7 +1668,7 @@ def create_install_data(self) -> InstallData:
16681668
# TODO go through all candidates, like others
16691669
strip_bin = [detect.defaults['strip'][0]]
16701670

1671-
umask = self.environment.coredata.get_option(OptionKey('install_umask'))
1671+
umask = self.environment.coredata.optstore.get_value_for(OptionKey('install_umask'))
16721672
assert isinstance(umask, (str, int)), 'for mypy'
16731673

16741674
d = InstallData(self.environment.get_source_dir(),
@@ -1700,7 +1700,7 @@ def guess_install_tag(self, fname: str, outdir: T.Optional[str] = None) -> T.Opt
17001700
bindir = Path(prefix, self.environment.get_bindir())
17011701
libdir = Path(prefix, self.environment.get_libdir())
17021702
incdir = Path(prefix, self.environment.get_includedir())
1703-
_ldir = self.environment.coredata.get_option(OptionKey('localedir'))
1703+
_ldir = self.environment.coredata.optstore.get_value_for(OptionKey('localedir'))
17041704
assert isinstance(_ldir, str), 'for mypy'
17051705
localedir = Path(prefix, _ldir)
17061706
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
@@ -613,7 +613,7 @@ def generate(self, capture: bool = False, vslite_ctx: T.Optional[T.Dict] = None)
613613
# so no harm in catching and reporting something unexpected.
614614
raise MesonBugException('We do not expect the ninja backend to be given a valid \'vslite_ctx\'')
615615
ninja = environment.detect_ninja_command_and_version(log=True)
616-
if self.environment.coredata.get_option(OptionKey('vsenv')):
616+
if self.environment.coredata.optstore.get_value_for(OptionKey('vsenv')):
617617
builddir = Path(self.environment.get_build_dir())
618618
try:
619619
# For prettier printing, reduce to a relative path. If
@@ -1339,9 +1339,9 @@ def generate_install(self) -> None:
13391339
def generate_tests(self) -> None:
13401340
self.serialize_tests()
13411341
cmd = self.environment.get_build_command(True) + ['test', '--no-rebuild']
1342-
if not self.environment.coredata.get_option(OptionKey('stdsplit')):
1342+
if not self.environment.coredata.optstore.get_value_for(OptionKey('stdsplit')):
13431343
cmd += ['--no-stdsplit']
1344-
if self.environment.coredata.get_option(OptionKey('errorlogs')):
1344+
if self.environment.coredata.optstore.get_value_for(OptionKey('errorlogs')):
13451345
cmd += ['--print-errorlogs']
13461346
elem = self.create_phony_target('test', 'CUSTOM_COMMAND', ['all', 'meson-test-prereq', 'PHONY'])
13471347
elem.add_item('COMMAND', cmd)

mesonbuild/backend/vs2010backend.py

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

269-
self.buildtype = self.environment.coredata.get_option(OptionKey('buildtype'))
270-
self.optimization = self.environment.coredata.get_option(OptionKey('optimization'))
271-
self.debug = self.environment.coredata.get_option(OptionKey('debug'))
269+
self.buildtype = self.environment.coredata.optstore.get_value_for(OptionKey('buildtype'))
270+
self.optimization = self.environment.coredata.optstore.get_value_for(OptionKey('optimization'))
271+
self.debug = self.environment.coredata.optstore.get_value_for(OptionKey('debug'))
272272
try:
273-
self.sanitize = self.environment.coredata.get_option(OptionKey('b_sanitize'))
273+
self.sanitize = self.environment.coredata.optstore.get_value_for(OptionKey('b_sanitize'))
274274
except KeyError:
275275
self.sanitize = 'none'
276276
sln_filename = os.path.join(self.environment.get_build_dir(), self.build.project_name + '.sln')
@@ -421,7 +421,7 @@ def generate_solution(self, sln_filename: str, projlist: T.List[Project]) -> Non
421421
ofile.write('# Visual Studio %s\n' % self.sln_version_comment)
422422
prj_templ = 'Project("{%s}") = "%s", "%s", "{%s}"\n'
423423
for prj in projlist:
424-
if self.environment.coredata.get_option(OptionKey('layout')) == 'mirror':
424+
if self.environment.coredata.optstore.get_value_for(OptionKey('layout')) == 'mirror':
425425
self.generate_solution_dirs(ofile, prj[1].parents)
426426
target = self.build.targets[prj[0]]
427427
lang = 'default'
@@ -1790,7 +1790,7 @@ def path_normalize_add(path, lis):
17901790
# build system as possible.
17911791
self.add_target_deps(root, target)
17921792
self._prettyprint_vcxproj_xml(ET.ElementTree(root), ofname)
1793-
if self.environment.coredata.get_option(OptionKey('layout')) == 'mirror':
1793+
if self.environment.coredata.optstore.get_value_for(OptionKey('layout')) == 'mirror':
17941794
self.gen_vcxproj_filters(target, ofname)
17951795
return True
17961796

@@ -1959,9 +1959,9 @@ def gen_testproj(self):
19591959
meson_build_dir_for_buildtype = build_dir_tail[:-2] + buildtype # Get the buildtype suffixed 'builddir_[debug/release/etc]' from 'builddir_vs', for example.
19601960
proj_to_build_dir_for_buildtype = str(os.path.join(proj_to_multiconfigured_builds_parent_dir, meson_build_dir_for_buildtype))
19611961
test_cmd = f'{nmake_base_meson_command} test -C "{proj_to_build_dir_for_buildtype}" --no-rebuild'
1962-
if not self.environment.coredata.get_option(OptionKey('stdsplit')):
1962+
if not self.environment.coredata.optstore.get_value_for(OptionKey('stdsplit')):
19631963
test_cmd += ' --no-stdsplit'
1964-
if self.environment.coredata.get_option(OptionKey('errorlogs')):
1964+
if self.environment.coredata.optstore.get_value_for(OptionKey('errorlogs')):
19651965
test_cmd += ' --print-errorlogs'
19661966
condition = f'\'$(Configuration)|$(Platform)\'==\'{buildtype}|{self.platform}\''
19671967
prop_group = ET.SubElement(root, 'PropertyGroup', Condition=condition)
@@ -1983,9 +1983,9 @@ def gen_testproj(self):
19831983
ET.SubElement(midl, 'ProxyFileName').text = '%(Filename)_p.c'
19841984
# FIXME: No benchmarks?
19851985
test_command = self.environment.get_build_command() + ['test', '--no-rebuild']
1986-
if not self.environment.coredata.get_option(OptionKey('stdsplit')):
1986+
if not self.environment.coredata.optstore.get_value_for(OptionKey('stdsplit')):
19871987
test_command += ['--no-stdsplit']
1988-
if self.environment.coredata.get_option(OptionKey('errorlogs')):
1988+
if self.environment.coredata.optstore.get_value_for(OptionKey('errorlogs')):
19891989
test_command += ['--print-errorlogs']
19901990
self.serialize_tests()
19911991
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
@@ -1722,7 +1722,7 @@ def process_vs_module_defs_kw(self, kwargs: T.Dict[str, T.Any]) -> None:
17221722
self.process_link_depends(path)
17231723

17241724
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]:
1725-
bl_type = self.environment.coredata.get_option(OptionKey('default_both_libraries'))
1725+
bl_type = self.environment.coredata.optstore.get_value_for(OptionKey('default_both_libraries'))
17261726
if bl_type == 'auto':
17271727
if isinstance(self, StaticLibrary):
17281728
bl_type = 'static'
@@ -2030,7 +2030,7 @@ def post_init(self) -> None:
20302030
machine.is_windows()
20312031
and ('cs' in self.compilers or self.uses_rust() or self.get_using_msvc())
20322032
# .pdb file is created only when debug symbols are enabled
2033-
and self.environment.coredata.get_option(OptionKey("debug"))
2033+
and self.environment.coredata.optstore.get_value_for(OptionKey("debug"))
20342034
)
20352035
if create_debug_file:
20362036
# If the target is has a standard exe extension (i.e. 'foo.exe'),
@@ -2312,14 +2312,14 @@ def determine_filenames(self):
23122312
# Import library is called foo.dll.lib
23132313
import_filename_tpl = '{0.prefix}{0.name}.dll.lib'
23142314
# .pdb file is only created when debug symbols are enabled
2315-
create_debug_file = self.environment.coredata.get_option(OptionKey("debug"))
2315+
create_debug_file = self.environment.coredata.optstore.get_value_for(OptionKey("debug"))
23162316
elif self.get_using_msvc():
23172317
# Shared library is of the form foo.dll
23182318
prefix = ''
23192319
# Import library is called foo.lib
23202320
import_filename_tpl = '{0.prefix}{0.name}.lib'
23212321
# .pdb file is only created when debug symbols are enabled
2322-
create_debug_file = self.environment.coredata.get_option(OptionKey("debug"))
2322+
create_debug_file = self.environment.coredata.optstore.get_value_for(OptionKey("debug"))
23232323
# Assume GCC-compatible naming
23242324
else:
23252325
# 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
@@ -396,9 +396,6 @@ def init_backend_options(self, backend_name: str) -> None:
396396
'Default project to execute in Visual Studio',
397397
''))
398398

399-
def get_option(self, key: OptionKey) -> ElementaryOptionValues:
400-
return self.optstore.get_value_for(key.name, key.subproject)
401-
402399
def get_option_for_target(self, target: 'BuildTarget', key: T.Union[str, OptionKey]) -> ElementaryOptionValues:
403400
if isinstance(key, str):
404401
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
@@ -962,25 +962,25 @@ def get_static_lib_dir(self) -> str:
962962
return self.get_libdir()
963963

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

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

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

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

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

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

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

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

0 commit comments

Comments
 (0)