summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2025-03-11 13:13:23 -0700
committerEli Schwartz <eschwartz93@gmail.com>2025-04-02 12:56:37 -0400
commit631486b8f68b152fdbf01c726bf4b0cb6bcbead3 (patch)
treef939bd2f48700a3e44d41f1c284ee1131175e384
parent24d57b5f92439f54241ce4b08d166e26d7e46890 (diff)
downloadmeson-631486b8f68b152fdbf01c726bf4b0cb6bcbead3.tar.gz
options: rename OptStore.pending_project_options -> pending_options
It's not just project options, it's all options that can end up on here.
-rw-r--r--mesonbuild/msetup.py2
-rw-r--r--mesonbuild/options.py26
2 files changed, 16 insertions, 12 deletions
diff --git a/mesonbuild/msetup.py b/mesonbuild/msetup.py
index df5d2398f..e6c68a9f9 100644
--- a/mesonbuild/msetup.py
+++ b/mesonbuild/msetup.py
@@ -189,7 +189,7 @@ class MesonApp:
return self._generate(env, capture, vslite_ctx)
def check_unused_options(self, coredata: 'coredata.CoreData', cmd_line_options: T.Any, all_subprojects: T.Any) -> None:
- pending = coredata.optstore.pending_project_options
+ pending = coredata.optstore.pending_options
errlist: T.List[str] = []
for opt in pending:
# Due to backwards compatibility setting build options in non-cross
diff --git a/mesonbuild/options.py b/mesonbuild/options.py
index ac09d7299..0107d09f2 100644
--- a/mesonbuild/options.py
+++ b/mesonbuild/options.py
@@ -798,11 +798,15 @@ class OptionStore:
self.all_languages = set(all_languages)
self.project_options = set()
self.augments: T.Dict[str, str] = {}
- self.pending_project_options: T.Dict[OptionKey, str] = {}
self.is_cross = is_cross
+ # Pending options are options that need to be initialized later, either
+ # configuration dependent options like compiler options, or options for
+ # a different subproject
+ self.pending_options: T.Dict[OptionKey, ElementaryOptionValues] = {}
+
def clear_pending(self) -> None:
- self.pending_project_options = {}
+ self.pending_options = {}
def ensure_and_validate_key(self, key: T.Union[OptionKey, str]) -> OptionKey:
if isinstance(key, str):
@@ -889,7 +893,7 @@ class OptionStore:
assert isinstance(valobj.name, str)
if key not in self.options:
self.options[key] = valobj
- pval = self.pending_project_options.pop(key, None)
+ pval = self.pending_options.pop(key, None)
if pval is not None:
self.set_option(key, pval)
@@ -902,7 +906,7 @@ class OptionStore:
def add_project_option(self, key: T.Union[OptionKey, str], valobj: AnyOptionType) -> None:
key = self.ensure_and_validate_key(key)
assert key.subproject is not None
- pval = self.pending_project_options.pop(key, None)
+ pval = self.pending_options.pop(key, None)
if key in self.options:
raise MesonException(f'Internal error: tried to add a project option {key} that already exists.')
else:
@@ -1285,7 +1289,7 @@ class OptionStore:
if proj_key in self.options:
self.options[proj_key].set_value(valstr)
else:
- self.pending_project_options[key] = valstr
+ self.pending_options[key] = valstr
assert isinstance(project_default_options, dict)
for keystr, valstr in project_default_options.items():
# Ths is complicated by the fact that a string can have two meanings:
@@ -1306,7 +1310,7 @@ class OptionStore:
if not self.is_cross and key.is_for_build():
continue
if key.subproject is not None:
- self.pending_project_options[key] = valstr
+ self.pending_options[key] = valstr
elif key in self.options:
self.set_option(key, valstr, first_invocation)
else:
@@ -1318,7 +1322,7 @@ class OptionStore:
if self.is_project_option(proj_key):
self.set_option(proj_key, valstr)
else:
- self.pending_project_options[key] = valstr
+ self.pending_options[key] = valstr
assert isinstance(cmd_line_options, dict)
for keystr, valstr in cmd_line_options.items():
if isinstance(keystr, str):
@@ -1344,9 +1348,9 @@ class OptionStore:
# Permitting them all is not strictly correct.
if not self.is_compiler_option(key) and not self.is_base_option(key):
raise MesonException(f'Unknown options: "{keystr}"')
- self.pending_project_options[key] = valstr
+ self.pending_options[key] = valstr
else:
- self.pending_project_options[key] = valstr
+ self.pending_options[key] = valstr
def hacky_mchackface_back_to_list(self, optdict: T.Dict[str, str]) -> T.List[str]:
if isinstance(optdict, dict):
@@ -1373,7 +1377,7 @@ class OptionStore:
if key in self.project_options:
self.set_option(key, valstr, is_first_invocation)
else:
- self.pending_project_options.pop(key, None)
+ self.pending_options.pop(key, None)
aug_str = f'{subproject}:{keystr}'
self.augments[aug_str] = valstr
# Check for pending options
@@ -1383,7 +1387,7 @@ class OptionStore:
key = OptionKey.from_string(key)
if key.subproject != subproject:
continue
- self.pending_project_options.pop(key, None)
+ self.pending_options.pop(key, None)
if key in self.options:
self.set_option(key, valstr, is_first_invocation)
else: