summaryrefslogtreecommitdiff
path: root/mesonbuild/cmake
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2024-08-29 15:47:20 -0700
committerJussi Pakkanen <jpakkane@gmail.com>2025-02-05 17:45:38 +0200
commitba3460eb11bbceaf4fef7352bf286cf27184c99a (patch)
treeef001dc11ac342d82296a7e41560dac04f8b89ce /mesonbuild/cmake
parent0e11b90d6f2f9c3e18cb8ff84b1622640666e826 (diff)
downloadmeson-ba3460eb11bbceaf4fef7352bf286cf27184c99a.tar.gz
options: Add an EnumeratedUserOption class
This will allow us to take choices out of the UserOption class, which doesn't actually use this attribute.
Diffstat (limited to 'mesonbuild/cmake')
-rw-r--r--mesonbuild/cmake/interpreter.py12
1 files changed, 4 insertions, 8 deletions
diff --git a/mesonbuild/cmake/interpreter.py b/mesonbuild/cmake/interpreter.py
index fafee86ab..27ce54e20 100644
--- a/mesonbuild/cmake/interpreter.py
+++ b/mesonbuild/cmake/interpreter.py
@@ -19,6 +19,7 @@ from .toolchain import CMakeToolchain, CMakeExecScope
from .traceparser import CMakeTraceParser
from .tracetargets import resolve_cmake_trace_targets
from .. import mlog, mesonlib
+from .. import options
from ..mesonlib import MachineChoice, OrderedSet, path_is_in_root, relative_to_if_possible
from ..options import OptionKey
from ..mesondata import DataFile
@@ -533,17 +534,12 @@ class ConverterTarget:
@lru_cache(maxsize=None)
def _all_lang_stds(self, lang: str) -> 'ImmutableListProtocol[str]':
try:
- res = self.env.coredata.optstore.get_value_object(OptionKey(f'{lang}_std', machine=MachineChoice.BUILD)).choices
+ opt = self.env.coredata.optstore.get_value_object(OptionKey(f'{lang}_std', machine=MachineChoice.BUILD))
+ assert isinstance(opt, (options.UserStdOption, options.UserComboOption)), 'for mypy'
+ return opt.choices or []
except KeyError:
return []
- # TODO: Get rid of this once we have proper typing for options
- assert isinstance(res, list)
- for i in res:
- assert isinstance(i, str)
-
- return res
-
def process_inter_target_dependencies(self) -> None:
# Move the dependencies from all TRANSFER_DEPENDENCIES_FROM to the target
to_process = list(self.depends)