def main(): parser = ArgumentParser() parser.add_argument( "-d", "--dir", dest="directory", action="append", help="Path to XML descriptions", required=True ) parser.add_argument("-o", "--outdir", dest="outdir", action="store", help="Output directory", required=True) parser.add_argument("-v", "--verbose", action="store_true", dest="verbose", default=False, help="Verbose output") parser.add_argument( "-X", "--xmldir", dest="xmldir", default=sys.path, action="append", help="Directory to search for parent classes's XMLs", ) parser.add_argument("--pkg", dest="pkg", default="eo", action="store", help='pkg-confing libraries. Default: "eo"') parser.add_argument("-m", "--module", dest="module", action="store", help="Name of module", required=True) parser.add_argument("-I", "--include", dest="include_paths", action="append", help="Pre-processor include path") parser.add_argument("-l", "--library", dest="libraries", action="append", help="Libraries of this unit") parser.add_argument( "-L", "--library-path", dest="library_paths", action="append", help="Directories to search for libraries" ) parser.add_argument("-D", "--define", dest="cpp_defines", action="append", help="Pre-processor define") args = parser.parse_args() verbose_print = verbose_true if args.verbose is True else verbose_false directories = [] outdir = "" sourcedir = "" incl_dirs = [] directories = abs_path_get(args.directory) outdir = abs_path_get([args.outdir])[0] if args.xmldir is not None: incl_dirs = abs_path_get(args.xmldir, False) xml_files = dir_files_get(directories, False) xml_files = filter(isXML, xml_files) xp = XMLparser() xp.module_parse(args.module, xml_files, incl_dirs) xp.js_code_generate(outdir) c_files = [] for n, o in xp.objects.items(): c_files.append(o.V.c_file.name) makefile_file_generate(args, c_files, outdir) del xp
def main(): parser = ArgumentParser() parser.add_argument( "-d", "--dir", dest="directory", action="append", help="Path to XML descriptions", required=True ) parser.add_argument("-o", "--outdir", dest="outdir", action="store", help="Output directory", required=True) parser.add_argument("-v", "--verbose", action="store_true", dest="verbose", default=False, help="Verbose output") parser.add_argument( "-X", "--xmldir", dest="xmldir", default=sys.path, action="append", help="Directory to search for parent classes's XMLs", ) parser.add_argument("--pkg", dest="pkg", default="eo", action="store", help='pkg-confing libraries. Default: "eo"') parser.add_argument("-m", "--module", dest="module", action="store", help="Name of module", required=True) parser.add_argument("-I", "--include", dest="include_paths", action="append", help="Pre-processor include path") parser.add_argument("-l", "--library", dest="libraries", action="append", help="Libraries of this unit") parser.add_argument( "-L", "--library-path", dest="library_paths", action="append", help="Directories to search for libraries" ) parser.add_argument("-D", "--define", dest="cpp_defines", action="append", help="Pre-processor define") args = parser.parse_args() verbose_print = verbose_true if args.verbose is True else verbose_false directories = [] outdir = "" sourcedir = "" incl_dirs = [] directories = abs_path_get(args.directory) outdir = abs_path_get([args.outdir])[0] if args.xmldir is not None: incl_dirs = abs_path_get(args.xmldir, False) xml_files = dir_files_get(directories, False) xml_files = filter(isXML, xml_files) xp = XMLparser() xp.module_parse(args.module, xml_files, incl_dirs) if args.module == "eobase": outdir_tmp = os.path.join(outdir, const.PREFIX) if not os.path.exists(outdir_tmp): os.mkdir(outdir_tmp) xp.py_code_generate(args.module, outdir_tmp) else: xp.py_code_generate(args.module, outdir) setup_file_generate(args, outdir) # Looking for "eodefault.pxd" module. Needed to include if args.module == "eobase": for d in incl_dirs: d_tmp = os.path.join(d, "eodefault.pxd") if os.path.exists(d_tmp): sourcedir = d break if sourcedir == "": print "ERROR: no include files were found... Aborting... (Use: -X(--xmldir=)XML_DIR)" exit(1) # copying eodefault module into source dir f_pyx = os.path.join(sourcedir, "eodefault.pyx") f_pxd = os.path.join(sourcedir, "eodefault.pxd") f_init = os.path.join(sourcedir, "__init__.py") try: # this file is needed only to build eodefault. outdir_tmp = os.path.join(outdir, const.PREFIX) shutil.copy(f_pyx, outdir_tmp) shutil.copy(f_pxd, outdir_tmp) shutil.copy(f_init, outdir_tmp) except IOError as ex: print "%s" % ex print "Aborting" exit(1) except shutil.Error as er: print "Warning: %s" % er del xp