aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter/mesonmain.py
diff options
context:
space:
mode:
authorL. E. Segovia <amy@amyspark.me>2022-10-08 21:14:37 +0000
committerEli Schwartz <eschwartz93@gmail.com>2023-02-20 11:05:06 -0500
commit088727164de8496c4bada040c2f4690e42f66b69 (patch)
tree26baacb88fd6761363be89bf2b0aa0ea78bfe628 /mesonbuild/interpreter/mesonmain.py
parentc2b0ca0fb9d7e6850874ae7c1c755982676f593d (diff)
downloadmeson-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.py12
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)