86 lines
1 KiB
Python
Executable file
86 lines
1 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
|
|
# vim: sw=2 ts=2 ex:
|
|
|
|
import sys;
|
|
import os;
|
|
|
|
import argparse;
|
|
|
|
from python.run import run, print_and_run;
|
|
|
|
from python.build import build;
|
|
|
|
def split_args(argv):
|
|
argv0 = argv[0];
|
|
|
|
argv = argv[1:];
|
|
|
|
for i, arg in enumerate(argv):
|
|
if arg == "--":
|
|
return argv0, argv[:i], argv[i+1:];
|
|
|
|
return argv0, argv, [];
|
|
|
|
def parseargs():
|
|
parser = argparse.ArgumentParser(description = "build command")
|
|
|
|
parser.add_argument("--build-type", "--buildtype", default = "release");
|
|
|
|
parser.add_argument("--valgrind", action = "store_true");
|
|
|
|
argv0, my_args, run_args = split_args(sys.argv);
|
|
|
|
retval = parser.parse_args(my_args);
|
|
|
|
retval.argv0 = argv0;
|
|
|
|
retval.run_args = run_args;
|
|
|
|
return retval;
|
|
|
|
def main(args):
|
|
exe = build(args);
|
|
|
|
command = (exe, *args.run_args);
|
|
|
|
if args.valgrind:
|
|
command = ("valgrind", "--exit-on-first-error=yes", ) + command;
|
|
|
|
print_and_run(command);
|
|
|
|
return 0;
|
|
|
|
exit(main(parseargs()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|