aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
authorDaniel Mensinger <daniel@mensinger-ka.de>2019-02-23 11:28:04 +0100
committerDaniel Mensinger <daniel@mensinger-ka.de>2019-06-06 18:27:02 +0200
commitbe6a9191e16aa3ced9cae49eeeee2f21fe47cb63 (patch)
tree320cc0bfa1b9036f7879e27230730f8f7675cfe8 /mesonbuild/interpreter.py
parente55236bde495cb7c638a010c2de2dcadc31273e0 (diff)
downloadmeson-be6a9191e16aa3ced9cae49eeeee2f21fe47cb63.zip
meson-be6a9191e16aa3ced9cae49eeeee2f21fe47cb63.tar.gz
meson-be6a9191e16aa3ced9cae49eeeee2f21fe47cb63.tar.bz2
cmake: First working version
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py21
1 files changed, 17 insertions, 4 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index b2b25fe..bee990a 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -2513,7 +2513,7 @@ external dependencies (including libraries) must go to "dependencies".''')
return self.disabled_subproject(dirname)
raise e
- def do_subproject_meson(self, dirname, subdir, default_options, required, kwargs, ast=None):
+ def do_subproject_meson(self, dirname, subdir, default_options, required, kwargs, ast=None, build_def_files=None):
with mlog.nested():
new_build = self.build.copy()
subi = Interpreter(new_build, self.backend, dirname, subdir, self.subproject_dir,
@@ -2536,7 +2536,10 @@ external dependencies (including libraries) must go to "dependencies".''')
self.subprojects.update(subi.subprojects)
self.subprojects[dirname] = SubprojectHolder(subi, self.subproject_dir, dirname)
# Duplicates are possible when subproject uses files from project root
- self.build_def_files = list(set(self.build_def_files + subi.build_def_files))
+ if build_def_files:
+ self.build_def_files += list(set(self.build_def_files + build_def_files))
+ else:
+ self.build_def_files += list(set(self.build_def_files + subi.build_def_files))
self.build.merge(subi.build)
self.build.subprojects[dirname] = subi.project_version
return self.subprojects[dirname]
@@ -2550,12 +2553,22 @@ external dependencies (including libraries) must go to "dependencies".''')
cm_int.analyse()
# Generate a meson ast and execute it with the normal do_subproject_meson
+ ast = cm_int.pretend_to_be_meson()
+
mlog.log()
with mlog.nested():
mlog.log('Processing generated meson AST')
mlog.log()
- ast = cm_int.pretend_to_be_meson()
- result = self.do_subproject_meson(dirname, subdir, default_options, required, kwargs, ast)
+ mlog.log('=== BEGIN meson.build ===')
+ from .ast import AstIndentationGenerator, AstPrinter
+ printer = AstPrinter()
+ ast.accept(AstIndentationGenerator())
+ ast.accept(printer)
+ printer.post_process()
+ mlog.log(printer.result)
+ mlog.log('=== END meson.build ===')
+ mlog.log()
+ result = self.do_subproject_meson(dirname, subdir, default_options, required, kwargs, ast, cm_int.bs_files)
mlog.log()
return result