From 7176b74fd60fb4726826c46c545c2ed25c26cd20 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Mon, 28 Sep 2020 08:49:41 -0400 Subject: Add meson.project_build/source_root() methods --- mesonbuild/interpreter.py | 22 ++++++++++++++++++++++ mesonbuild/interpreterbase.py | 1 + 2 files changed, 23 insertions(+) (limited to 'mesonbuild') diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 7df5571..0e5e0f8 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -1924,6 +1924,8 @@ class MesonMain(InterpreterObject): 'current_build_dir': self.current_build_dir_method, 'source_root': self.source_root_method, 'build_root': self.build_root_method, + 'project_source_root': self.project_source_root_method, + 'project_build_root': self.project_build_root_method, 'add_install_script': self.add_install_script_method, 'add_postconf_script': self.add_postconf_script_method, 'add_dist_script': self.add_dist_script_method, @@ -2073,6 +2075,26 @@ class MesonMain(InterpreterObject): @noPosargs @permittedKwargs({}) + @FeatureNew('meson.project_source_root', '0.56.0') + def project_source_root_method(self, args, kwargs): + src = self.interpreter.environment.source_dir + sub = self.interpreter.root_subdir + if sub == '': + return src + return os.path.join(src, sub) + + @noPosargs + @permittedKwargs({}) + @FeatureNew('meson.project_build_root', '0.56.0') + def project_build_root_method(self, args, kwargs): + src = self.interpreter.environment.build_dir + sub = self.interpreter.root_subdir + if sub == '': + return src + return os.path.join(src, sub) + + @noPosargs + @permittedKwargs({}) @FeatureDeprecated('meson.has_exe_wrapper', '0.55.0', 'use meson.can_run_host_binaries instead.') def has_exe_wrapper_method(self, args: T.Tuple[object, ...], kwargs: T.Dict[str, object]) -> bool: return self.can_run_host_binaries_impl(args, kwargs) diff --git a/mesonbuild/interpreterbase.py b/mesonbuild/interpreterbase.py index 1524409..d3f8181 100644 --- a/mesonbuild/interpreterbase.py +++ b/mesonbuild/interpreterbase.py @@ -464,6 +464,7 @@ class InterpreterBase: self.funcs = {} # type: T.Dict[str, T.Callable[[mparser.BaseNode, T.List[TYPE_nvar], T.Dict[str, TYPE_nvar]], TYPE_var]] self.builtin = {} # type: T.Dict[str, InterpreterObject] self.subdir = subdir + self.root_subdir = subdir self.subproject = subproject self.variables = {} # type: T.Dict[str, TYPE_var] self.argument_depth = 0 -- cgit v1.1