diff options
author | L. E. Segovia <amy@amyspark.me> | 2022-10-08 21:14:37 +0000 |
---|---|---|
committer | Eli Schwartz <eschwartz93@gmail.com> | 2023-02-20 11:05:06 -0500 |
commit | 088727164de8496c4bada040c2f4690e42f66b69 (patch) | |
tree | 26baacb88fd6761363be89bf2b0aa0ea78bfe628 /mesonbuild/interpreter/mesonmain.py | |
parent | c2b0ca0fb9d7e6850874ae7c1c755982676f593d (diff) | |
download | meson-088727164de8496c4bada040c2f4690e42f66b69.zip meson-088727164de8496c4bada040c2f4690e42f66b69.tar.gz meson-088727164de8496c4bada040c2f4690e42f66b69.tar.bz2 |
interpreter/mesonmain: Add build_options method
This method allows meson.build to introspect on the changed options.
It works by merely exposing the same set of data that is logged by
MesonApp._generate.
Fixes #10898
Diffstat (limited to 'mesonbuild/interpreter/mesonmain.py')
-rw-r--r-- | mesonbuild/interpreter/mesonmain.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/mesonbuild/interpreter/mesonmain.py b/mesonbuild/interpreter/mesonmain.py index cd3d5ed..3e75629 100644 --- a/mesonbuild/interpreter/mesonmain.py +++ b/mesonbuild/interpreter/mesonmain.py @@ -9,7 +9,7 @@ import typing as T from .. import mesonlib from .. import dependencies from .. import build -from .. import mlog +from .. import mlog, coredata from ..mesonlib import MachineChoice, OptionKey from ..programs import OverrideProgram, ExternalProgram @@ -84,6 +84,7 @@ class MesonMain(MesonInterpreterObject): 'has_external_property': self.has_external_property_method, 'backend': self.backend_method, 'add_devenv': self.add_devenv_method, + 'build_options': self.build_options_method, }) def _find_source_script( @@ -465,3 +466,12 @@ class MesonMain(MesonInterpreterObject): converted = env_convertor_with_method(env, kwargs['method'], kwargs['separator']) assert isinstance(converted, build.EnvironmentVariables) self.build.devenv.append(converted) + + @noPosargs + @noKwargs + @FeatureNew('meson.build_options', '1.1.0') + def build_options_method(self, args: T.List['TYPE_var'], kwargs: 'TYPE_kwargs') -> str: + options = self.interpreter.user_defined_options + if options is None: + return '' + return coredata.format_cmd_line_options(options) |