"""Build an experimental just-in-time compiler for CPython."""
import argparse
import pathlib
import shlex
import sys
import _targets
if __name__ == "__main__":
comment = f"$ {shlex.join([pathlib.Path(sys.executable).name] + sys.argv)}"
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument(
"target", type=_targets.get_target, help="a PEP 11 target triple to compile for"
)
parser.add_argument(
"-d", "--debug", action="store_true", help="compile for a debug build of Python"
)
parser.add_argument(
"-f", "--force", action="store_true", help="force the entire JIT to be rebuilt"
)
parser.add_argument(
"-v", "--verbose", action="store_true", help="echo commands as they are run"
)
args = parser.parse_args()
args.target.debug = args.debug
args.target.verbose = args.verbose
args.target.build(pathlib.Path.cwd(), comment=comment, force=args.force)