aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2020-09-28 08:49:41 -0400
committerXavier Claessens <xavier.claessens@collabora.com>2020-09-28 11:22:38 -0400
commit7176b74fd60fb4726826c46c545c2ed25c26cd20 (patch)
treedd92b930a06c1f6d8c7bb8ba5d4088ad0fb3de3b /mesonbuild
parent55ea461993db23c8a68053a5f499fda7f65df9b6 (diff)
downloadmeson-7176b74fd60fb4726826c46c545c2ed25c26cd20.zip
meson-7176b74fd60fb4726826c46c545c2ed25c26cd20.tar.gz
meson-7176b74fd60fb4726826c46c545c2ed25c26cd20.tar.bz2
Add meson.project_build/source_root() methods
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/interpreter.py22
-rw-r--r--mesonbuild/interpreterbase.py1
2 files changed, 23 insertions, 0 deletions
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