示例#1
0
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