diff options
author | Daniel Mensinger <daniel@mensinger-ka.de> | 2019-01-31 14:56:19 +0100 |
---|---|---|
committer | Daniel Mensinger <daniel@mensinger-ka.de> | 2019-01-31 15:43:04 +0100 |
commit | 8bb942ef25c40014ca952e26fc70f927ab1694ff (patch) | |
tree | a667e166c9413dae7f7ce67e2faa4fe03039558b /mesonbuild/rewriter.py | |
parent | be3c58d6388c845fdde4374258dbb4ffbe18c5ca (diff) | |
download | meson-8bb942ef25c40014ca952e26fc70f927ab1694ff.zip meson-8bb942ef25c40014ca952e26fc70f927ab1694ff.tar.gz meson-8bb942ef25c40014ca952e26fc70f927ab1694ff.tar.bz2 |
Rewriter infodump modifications
Diffstat (limited to 'mesonbuild/rewriter.py')
-rw-r--r-- | mesonbuild/rewriter.py | 20 |
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 |