aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
authorDaniel Mensinger <daniel@mensinger-ka.de>2019-02-21 21:30:42 +0100
committerDaniel Mensinger <daniel@mensinger-ka.de>2019-06-06 18:27:01 +0200
commit8d3bd6eea8e0504ddaa979b14ad230f327eb1185 (patch)
tree2d524e507b6fb7de4d5d061aa0a915bc85efd992 /mesonbuild/interpreter.py
parente1863719cb7b72630dba885ac5c6dd19c758619f (diff)
downloadmeson-8d3bd6eea8e0504ddaa979b14ad230f327eb1185.zip
meson-8d3bd6eea8e0504ddaa979b14ad230f327eb1185.tar.gz
meson-8d3bd6eea8e0504ddaa979b14ad230f327eb1185.tar.bz2
cmake: Server handshake
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py13
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(