コード例 #1
0
    # options. The options are set before XML loading as they may affect it.
    reg = Registry(gen, options)

    # Parse the specified registry XML into an ElementTree object
    startTimer(args.time)
    tree = etree.parse(args.registry)
    endTimer(args.time, '* Time to make ElementTree =')

    # Load the XML tree into the registry object
    startTimer(args.time)
    reg.loadElementTree(tree)
    endTimer(args.time, '* Time to parse ElementTree =')

    if args.validate:
        reg.validateGroups()

    if args.dump:
        logDiag('* Dumping registry to regdump.txt')
        reg.dumpReg(filehandle=open('regdump.txt', 'w', encoding='utf-8'))

    # Finally, use the output generator to create the requested target
    if args.debug:
        pdb.run('reg.apiGen()')
    else:
        startTimer(args.time)
        reg.apiGen()
        endTimer(args.time, '* Time to generate ' + options.filename + ' =')

    if not args.quiet:
        logDiag('* Generated', options.filename)
コード例 #2
0
            module="{}.vk".format(pack),
            apiname="vulkan",
            regFile=path.join(regDir, "vk.xml"),
            versions=featuresPat,
            addExtensions=addPlatformExtensionsRE,
            removeExtensions=None,
            emitExtensions=emitPlatformExtensionsRE,
        ),
    ]

    for opts in buildList:
        gen = DGenerator()
        reg = Registry()
        reg.loadElementTree(etree.parse(opts.regFile))
        reg.setGenerator(gen)
        reg.apiGen(opts)
        files.append(opts.filename)

    import platform
    libname = ''
    if platform.system() == 'Windows':
        libname = 'vkd.lib'
    else:
        libname = 'libvkd.a'

    with open(path.join(rootDir, 'dmd_args.txt'), "w") as argfile:
        argfile.write('-lib\n')
        argfile.write('-I' + args.dest + '\n')
        argfile.write('-of' + path.join(rootDir, libname) + '\n')
        for f in files:
            argfile.write(f + '\n')