mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
942cf50735
Package revng's python code in two wheels: `revng` and `revng_internal`.
The revng wheel contains the
`revng.{pipeline_description,model,tupletree}` modules, while the
`revng_internal` one everything under `revng.internal`.
34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
#
|
|
# This file is distributed under the MIT License. See LICENSE.md for details.
|
|
#
|
|
|
|
from revng.internal.cli.commands_registry import Command, CommandsRegistry, Options
|
|
from revng.internal.cli.support import get_command, handle_asan, run
|
|
from revng.internal.support.collect import collect_libraries, collect_pipelines
|
|
|
|
|
|
class TraceRunCommand(Command):
|
|
def __init__(self):
|
|
super().__init__(("trace", "run"), "revng-trace-run wrapper", False)
|
|
|
|
def register_arguments(self, parser):
|
|
pass
|
|
|
|
def run(self, options: Options):
|
|
cmd = get_command("revng-trace-run", options.search_prefixes)
|
|
libraries, dependencies = collect_libraries(options.search_prefixes)
|
|
asan_prefix = handle_asan(dependencies, options.search_prefixes)
|
|
pipelines = collect_pipelines(options.search_prefixes)
|
|
|
|
args_combined = [
|
|
*[f"-load={p}" for p in libraries],
|
|
*[f"-pipeline-path={p}" for p in pipelines],
|
|
*options.remaining_args,
|
|
]
|
|
|
|
return run([*asan_prefix, cmd, *args_combined], options)
|
|
|
|
|
|
def setup(commands_registry: CommandsRegistry):
|
|
commands_registry.register_command(TraceRunCommand())
|