diff options
Diffstat (limited to 'ppapi/generators/generator.py')
-rwxr-xr-x | ppapi/generators/generator.py | 53 |
1 files changed, 31 insertions, 22 deletions
diff --git a/ppapi/generators/generator.py b/ppapi/generators/generator.py index b1ab0ee..4511cd9 100755 --- a/ppapi/generators/generator.py +++ b/ppapi/generators/generator.py @@ -5,6 +5,7 @@ import os import sys +import traceback # Note: some of these files are imported to register cmdline options. from idl_generator import Generator @@ -15,33 +16,41 @@ from idl_c_header import HGen from idl_gen_pnacl import PnaclGen -def Main(): - args = sys.argv[1:] +def Main(args): # If no arguments are provided, assume we are trying to rebuild the # C headers with warnings off. - if not args: - args = [ - '--wnone', '--cgen', '--range=start,end', - '--pnacl', '--pnaclshim', - '../native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c', - ] - current_dir = os.path.abspath(os.getcwd()) - script_dir = os.path.abspath(os.path.dirname(__file__)) - if current_dir != script_dir: - print '\nIncorrect CWD, default run skipped.' - print 'When running with no arguments set CWD to the scripts directory:' - print '\t' + script_dir + '\n' - print 'This ensures correct default paths and behavior.\n' + try: + if not args: + args = [ + '--wnone', '--cgen', '--range=start,end', + '--pnacl', '--pnaclshim', + '../native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c', + ] + current_dir = os.path.abspath(os.getcwd()) + script_dir = os.path.abspath(os.path.dirname(__file__)) + if current_dir != script_dir: + print '\nIncorrect CWD, default run skipped.' + print 'When running with no arguments set CWD to the scripts directory:' + print '\t' + script_dir + '\n' + print 'This ensures correct default paths and behavior.\n' + return 1 + + filenames = ParseOptions(args) + ast = ParseFiles(filenames) + if ast.errors: + print 'Found %d errors. Aborting build.\n' % ast.errors return 1 + return Generator.Run(ast) + except SystemExit, ec: + print 'Exiting with %d' % ec.code + sys.exit(ec.code) - filenames = ParseOptions(args) - ast = ParseFiles(filenames) - if ast.errors: - print 'Found %d errors. Aborting build.\n' % ast.errors - return 1 - return Generator.Run(ast) + except: + typeinfo, value, tb = sys.exc_info() + traceback.print_exception(typeinfo, value, tb) + print 'Called with: ' + ' '.join(sys.argv) if __name__ == '__main__': - sys.exit(Main()) + sys.exit(Main(sys.argv[1:])) |