def build(fname): global _pylines, _pylevel, _ns, _py_fmt_fmt, _py_fmt_size, _py_fmt_list _pylines = [] _pylevel = 0 _ns = None _py_fmt_fmt = '' _py_fmt_size = 0 _py_fmt_list = [] # Parse the xml header module = Module(fname, __main__.output) # Build type-registry and resolve type dependencies module.register() module.resolve() # Output the code module.generate()
parser.add_argument('output') args = parser.parse_args() output = {'open' : cxx_open, 'close' : cxx_close, 'simple' : cxx_simple, 'enum' : cxx_enum, 'struct' : cxx_struct, 'union' : cxx_union, 'request' : cxx_request, 'event' : cxx_event, 'error' : cxx_error, } if args.xml: from xcbgen.state import Module from xcbgen.xtypes import * module = Module(args.xml, output) c_client.module = module module.register() module.resolve() module.generate() else: future_error = cxx_request_wrapper("future_error", "xcb_void_cookie_t") cxx_request_checked(future_error) xcb_ns.children.append(future_error) std_ns.children.append(CxxTemplate("struct iterator_traits;\n", "typename Iterator")) cxx_close(None)
print str(err) print 'Usage: c_client.py [-p path] file.xml' sys.exit(1) for (opt, arg) in opts: if opt == '-p': sys.path.append(arg) # Import the module class try: from xcbgen.state import Module except ImportError: print '' print 'Failed to load the xcbgen Python package!' print 'Make sure that xcb/proto installed it on your Python path.' print 'If not, you will need to create a .pth file or define $PYTHONPATH' print 'to extend the path.' print 'Refer to the README file in xcb/proto for more info.' print '' raise # Parse the xml header module = Module(args[0], output) # Build type-registry and resolve type dependencies module.register() module.resolve() # Output the code module.generate()