aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/rewriter.py
diff options
context:
space:
mode:
authorDaniel Mensinger <daniel@mensinger-ka.de>2019-01-31 14:56:19 +0100
committerDaniel Mensinger <daniel@mensinger-ka.de>2019-01-31 15:43:04 +0100
commit8bb942ef25c40014ca952e26fc70f927ab1694ff (patch)
treea667e166c9413dae7f7ce67e2faa4fe03039558b /mesonbuild/rewriter.py
parentbe3c58d6388c845fdde4374258dbb4ffbe18c5ca (diff)
downloadmeson-8bb942ef25c40014ca952e26fc70f927ab1694ff.zip
meson-8bb942ef25c40014ca952e26fc70f927ab1694ff.tar.gz
meson-8bb942ef25c40014ca952e26fc70f927ab1694ff.tar.bz2
Rewriter infodump modifications
Diffstat (limited to 'mesonbuild/rewriter.py')
-rw-r--r--mesonbuild/rewriter.py20
1 files changed, 18 insertions, 2 deletions
diff --git a/mesonbuild/rewriter.py b/mesonbuild/rewriter.py
index de39f63..aea185b 100644
--- a/mesonbuild/rewriter.py
+++ b/mesonbuild/rewriter.py
@@ -299,6 +299,7 @@ class Rewriter:
'kwargs': self.process_kwargs,
'target': self.process_target,
}
+ self.info_dump = None
def analyze_meson(self):
mlog.log('Analyzing meson file:', mlog.bold(os.path.join(self.sourcedir, environment.build_filename)))
@@ -308,6 +309,21 @@ class Rewriter:
self.interpreter.ast.accept(AstIndentationGenerator())
self.interpreter.ast.accept(self.id_generator)
+ def add_info(self, cmd_type: str, cmd_id: str, data: dict):
+ if self.info_dump is None:
+ self.info_dump = {}
+ if cmd_type not in self.info_dump:
+ self.info_dump[cmd_type] = {}
+ self.info_dump[cmd_type][cmd_id] = data
+
+ def print_info(self):
+ if self.info_dump is None:
+ return
+ # Wrap the dump in magic strings
+ print('!!==JSON DUMP: BEGIN==!!')
+ print(json.dumps(self.info_dump, indent=2))
+ print('!!==JSON DUMP: END==!!')
+
def find_target(self, target: str):
def check_list(name: str):
for i in self.interpreter.targets:
@@ -322,7 +338,6 @@ class Rewriter:
# Check the assignments
if target in self.interpreter.assignments:
node = self.interpreter.assignments[target][0]
- print(node)
if isinstance(node, mparser.FunctionNode):
if node.func_name in ['executable', 'jar', 'library', 'shared_library', 'shared_module', 'static_library', 'both_libraries']:
name = self.interpreter.flatten_args(node.args)[0]
@@ -489,7 +504,7 @@ class Rewriter:
'name': target['name'],
'sources': src_list
}
- mlog.log(' !! target {}={}'.format(target['id'], json.dumps(test_data)))
+ self.add_info('target', target['id'], test_data)
def process(self, cmd):
if 'type' not in cmd:
@@ -601,4 +616,5 @@ def run(options):
rewriter.process(i)
rewriter.apply_changes()
+ rewriter.print_info()
return 0