コード例 #1
0
ファイル: eo_js_gen.py プロジェクト: yakov-g/eo_bindings
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
コード例 #2
0
ファイル: eo_py_gen.py プロジェクト: yakov-g/eo_bindings
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