diff options
author | Daniel Mensinger <daniel@mensinger-ka.de> | 2019-02-21 21:30:42 +0100 |
---|---|---|
committer | Daniel Mensinger <daniel@mensinger-ka.de> | 2019-06-06 18:27:01 +0200 |
commit | 8d3bd6eea8e0504ddaa979b14ad230f327eb1185 (patch) | |
tree | 2d524e507b6fb7de4d5d061aa0a915bc85efd992 /mesonbuild/interpreter.py | |
parent | e1863719cb7b72630dba885ac5c6dd19c758619f (diff) | |
download | meson-8d3bd6eea8e0504ddaa979b14ad230f327eb1185.zip meson-8d3bd6eea8e0504ddaa979b14ad230f327eb1185.tar.gz meson-8d3bd6eea8e0504ddaa979b14ad230f327eb1185.tar.bz2 |
cmake: Server handshake
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 29e6632..05636db 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -31,6 +31,7 @@ from .interpreterbase import InterpreterObject, MutableInterpreterObject, Disabl from .interpreterbase import FeatureNew, FeatureDeprecated, FeatureNewKwargs from .interpreterbase import ObjectHolder from .modules import ModuleReturnValue +from .cmake import CMakeInterpreter import os, shutil, uuid import re, shlex @@ -2493,7 +2494,7 @@ external dependencies (including libraries) must go to "dependencies".''') if method == 'meson': return self.do_subproject_meson(dirname, subdir, default_options, required, kwargs) elif method == 'cmake': - return self.do_subproject_cmake(dirname, subdir, required, kwargs) + return self.do_subproject_cmake(dirname, subdir_abs, required, kwargs) else: raise InterpreterException('The method {} is invalid for the subproject {}'.format(method, dirname)) # Invalid code is always an error @@ -2513,7 +2514,7 @@ external dependencies (including libraries) must go to "dependencies".''') with mlog.nested(): new_build = self.build.copy() subi = Interpreter(new_build, self.backend, dirname, subdir, self.subproject_dir, - self.modules, default_options) + self.modules, default_options) subi.subprojects = self.subprojects subi.subproject_stack = self.subproject_stack + [dirname] @@ -2538,7 +2539,13 @@ external dependencies (including libraries) must go to "dependencies".''') return self.subprojects[dirname] def do_subproject_cmake(self, dirname, subdir, required, kwargs): - raise InterpreterException('CMake subprojects are currently a stub') + with mlog.nested(): + build_dir = os.path.join(self.environment.get_scratch_dir(), 'cmake_subp_{}'.format(dirname)) + new_build = self.build.copy() + subi = CMakeInterpreter(new_build, subdir, build_dir, new_build.environment, self.backend) + subi.run() + + return None def get_option_internal(self, optname): for opts in chain( |