def main(): from optparse import OptionParser o = OptionParser(usage="usage: %prog [options] configfile") o.add_option('-I', action='append', dest='incdirs', default=['.'], help="Directory to search for imported files") o.add_option('-o', "--stub-output", type='string', dest='stub_output', default=None, help="C++ source output file", metavar="FILE") o.add_option('--header-output', type='string', default=None, help="Quick stub header output file", metavar="FILE") o.add_option('--makedepend-output', type='string', default=None, help="gnumake dependencies output file", metavar="FILE") o.add_option('--cachedir', dest='cachedir', default=None, help="Directory in which to cache lex/parse tables.") global options (options, filenames) = o.parse_args() if len(filenames) != 1: o.error("Exactly one config filename is needed.") filename = filenames[0] if options.cachedir is not None: if not os.path.isdir(options.cachedir): os.mkdir(options.cachedir) sys.path.append(options.cachedir) # Instantiate the parser. global p p = xpidl.IDLParser(outputdir=options.cachedir) conf = readConfigFile(filename) if options.stub_output is not None: makeutils.targets.append(options.stub_output) outfd = open(options.stub_output, 'w') print_cpp_file(outfd, conf) outfd.close() if options.makedepend_output is not None: makeutils.writeMakeDependOutput(options.makedepend_output) if options.header_output is not None: outfd = open(options.header_output, 'w') print_header_file(outfd, conf) outfd.close()
def main(): from optparse import OptionParser o = OptionParser(usage="usage: %prog [options] configfile") o.add_option('-o', "--stub-output", type='string', dest='stub_output', default=None, help="Quick stub C++ source output file", metavar="FILE") o.add_option('--header-output', type='string', default=None, help="Quick stub header output file", metavar="FILE") o.add_option('--makedepend-output', type='string', default=None, help="gnumake dependencies output file", metavar="FILE") o.add_option('--idlpath', type='string', default='.', help="colon-separated directories to search for idl files", metavar="PATH") o.add_option('--cachedir', dest='cachedir', default='', help="Directory in which to cache lex/parse tables.") o.add_option("--verbose-errors", action='store_true', default=False, help="When an error happens, display the Python traceback.") (options, filenames) = o.parse_args() if len(filenames) != 1: o.error("Exactly one config filename is needed.") filename = filenames[0] if options.stub_output is None: if filename.endswith('.qsconf') or filename.endswith('.py'): options.stub_output = filename.rsplit('.', 1)[0] + '.cpp' else: options.stub_output = filename + '.cpp' if options.header_output is None: options.header_output = re.sub(r'(\.c|\.cpp)?$', '.h', options.stub_output) if options.cachedir != '': sys.path.append(options.cachedir) if not os.path.isdir(options.cachedir): os.makedirs(options.cachedir) try: includePath = options.idlpath.split(':') conf, interfaces = readConfigFile(filename, includePath=includePath, cachedir=options.cachedir) writeStubFile(options.stub_output, options.header_output, conf, interfaces) writeHeaderFile(options.header_output, conf.name) if options.makedepend_output is not None: makeutils.writeMakeDependOutput(options.makedepend_output) except Exception, exc: if options.verbose_errors: raise elif isinstance(exc, (UserError, xpidl.IDLError)): warn(str(exc)) elif isinstance(exc, OSError): warn("%s: %s" % (exc.__class__.__name__, exc)) else: raise sys.exit(1)
filename = filenames[0] if options.cachedir is not None: if not os.path.isdir(options.cachedir): os.mkdir(options.cachedir) sys.path.append(options.cachedir) # Instantiate the parser. p = xpidl.IDLParser(outputdir=options.cachedir) conf = readConfigFile(filename) if options.header_output is not None: outfd = open(options.header_output, 'w') print_header_file(outfd, conf) outfd.close() if options.class_declarations is not None: outfd = open(options.class_declarations, 'w') print_classes_file(outfd, conf) outfd.close() if options.stub_output is not None: makeutils.targets.append(options.stub_output) outfd = open(options.stub_output, 'w') print_cpp_file(outfd, conf) outfd.close() if options.makedepend_output is not None: makeutils.writeMakeDependOutput(options.makedepend_output) if options.webidltarget is not None: print_webidl_files(options.webidltarget, conf)
os.mkdir(options.cachedir) sys.path.append(options.cachedir) # Instantiate the parser. p = xpidl.IDLParser(outputdir=options.cachedir) conf = readConfigFile(filename) if (len(filenames) > 1): eventconfig = {} execfile(filenames[1], eventconfig) simple_events = eventconfig.get('simple_events', []) for e in simple_events: eventdict = ("%sInit" % e) eventidl = ("nsIDOM%s.idl" % e) conf.dictionaries.append([eventdict, eventidl]); if options.header_output is not None: outfd = open(options.header_output, 'w') print_header_file(outfd, conf) outfd.close() if options.stub_output is not None: makeutils.targets.append(options.stub_output) outfd = open(options.stub_output, 'w') print_cpp_file(outfd, conf) outfd.close() if options.makedepend_output is not None: makeutils.writeMakeDependOutput(options.makedepend_output)