def generate_binding_files(config, outputprefix, srcprefix, webidlfile, generatedEventsWebIDLFiles): """ |config| Is the configuration object. |outputprefix| is a prefix to use for the header guards and filename. """ depsname = ".deps/" + outputprefix + ".pp" root = CGBindingRoot(config, outputprefix, webidlfile) replaceFileIfChanged(outputprefix + ".h", root.declare()) replaceFileIfChanged(outputprefix + ".cpp", root.define()) if webidlfile in generatedEventsWebIDLFiles: eventName = webidlfile[:-len(".webidl")] generatedEvent = CGEventRoot(config, eventName) replaceFileIfChanged(eventName + ".h", generatedEvent.declare()) replaceFileIfChanged(eventName + ".cpp", generatedEvent.define()) mk = Makefile() # NOTE: it's VERY important that we output dependencies for the FooBinding # file here, not for the header or generated cpp file. These dependencies # are used later to properly determine changedDeps and prevent rebuilding # too much. See the comment explaining $(binding_dependency_trackers) in # Makefile.in. rule = mk.create_rule([outputprefix]) rule.add_dependencies( os.path.join(srcprefix, x) for x in sorted(root.deps())) rule.add_dependencies(iter_modules_in_path(topsrcdir)) with open(depsname, 'w') as f: mk.dump(f)
def _generate_build_files_for_webidl(self, filename): from Codegen import ( CGBindingRoot, CGEventRoot, ) self.log( logging.INFO, "webidl_generate_build_for_input", {"filename": filename}, "Generating WebIDL files derived from {filename}", ) stem, binding_stem, is_event, header_dir, files = self._binding_info( filename) root = CGBindingRoot(self._config, binding_stem, filename) result = self._maybe_write_codegen(root, files[0], files[1]) if is_event: generated_event = CGEventRoot(self._config, stem) result = self._maybe_write_codegen(generated_event, files[2], files[3], result) return result, root.deps()
def generate_binding_files(config, outputprefix, srcprefix, webidlfile, generatedEventsWebIDLFiles): """ |config| Is the configuration object. |outputprefix| is a prefix to use for the header guards and filename. """ depsname = ".deps/" + outputprefix + ".pp" root = CGBindingRoot(config, outputprefix, webidlfile) replaceFileIfChanged(outputprefix + ".h", root.declare()) replaceFileIfChanged(outputprefix + ".cpp", root.define()) if webidlfile in generatedEventsWebIDLFiles: eventName = webidlfile[:-len(".webidl")] generatedEvent = CGEventRoot(config, eventName) replaceFileIfChanged(eventName + ".h", generatedEvent.declare()) replaceFileIfChanged(eventName + ".cpp", generatedEvent.define()) mk = Makefile() # NOTE: it's VERY important that we output dependencies for the FooBinding # file here, not for the header or generated cpp file. These dependencies # are used later to properly determine changedDeps and prevent rebuilding # too much. See the comment explaining $(binding_dependency_trackers) in # Makefile.in. rule = mk.create_rule([outputprefix]) rule.add_dependencies(os.path.join(srcprefix, x) for x in root.deps()) rule.add_dependencies(iter_modules_in_path(topsrcdir)) with open(depsname, 'w') as f: mk.dump(f)
def generate_binding_header(config, outputprefix, webidlfile): """ |config| Is the configuration object. |outputprefix| is a prefix to use for the header guards and filename. """ filename = outputprefix + ".h" root = CGBindingRoot(config, outputprefix, webidlfile) if replaceFileIfChanged(filename, root.declare()): print "Generating binding header: %s" % (filename)
def generate_binding_cpp(config, outputprefix, webidlfile): """ |config| Is the configuration object. |outputprefix| is a prefix to use for the header guards and filename. """ filename = outputprefix + ".cpp" root = CGBindingRoot(config, outputprefix, webidlfile) if replaceFileIfChanged(filename, root.define()): print "Generating binding implementation: %s" % (filename)
def generate_binding_header(config, outputprefix, srcprefix, webidlfile): """ |config| Is the configuration object. |outputprefix| is a prefix to use for the header guards and filename. """ filename = outputprefix + ".h" depsname = ".deps/" + filename + ".pp" root = CGBindingRoot(config, outputprefix, webidlfile) with open(filename, 'wb') as f: f.write(root.declare()) with open(depsname, 'wb') as f: f.write("\n".join(filename + ": " + os.path.join(srcprefix, x) for x in root.deps()))
def generate_binding_cpp(config, outputprefix, srcprefix, webidlfile): """ |config| Is the configuration object. |outputprefix| is a prefix to use for the header guards and filename. """ filename = outputprefix + ".cpp" depsname = ".deps/" + filename + ".pp" root = CGBindingRoot(config, outputprefix, webidlfile) with open(filename, 'wb') as f: f.write(root.define()) with open(depsname, 'wb') as f: f.write("\n".join(filename + ": " + os.path.join(srcprefix, x) for x in sorted(root.deps())))
def generate_binding_files(config, outputprefix, srcprefix, webidlfile): """ |config| Is the configuration object. |outputprefix| is a prefix to use for the header guards and filename. """ depsname = ".deps/" + outputprefix + ".pp" root = CGBindingRoot(config, outputprefix, webidlfile) replaceFileIfChanged(outputprefix + ".h", root.declare()) replaceFileIfChanged(outputprefix + ".cpp", root.define()) with open(depsname, 'wb') as f: # Sort so that our output is stable f.write("\n".join(outputprefix + ": " + os.path.join(srcprefix, x) for x in sorted(root.deps())))
def _generate_build_files_for_webidl(self, filename): self.log(logging.INFO, 'webidl_generate_build_for_input', {'filename': filename}, 'Generating WebIDL files derived from {filename}') stem, binding_stem, is_event, header_dir, files = self._binding_info(filename) root = CGBindingRoot(self._config, binding_stem, filename) result = self._maybe_write_codegen(root, files[0], files[1]) if is_event: generated_event = CGEventRoot(self._config, stem) result = self._maybe_write_codegen(generated_event, files[2], files[3], result) return result, root.deps()
def generate_binding_files(config, outputprefix, srcprefix, webidlfile): """ |config| Is the configuration object. |outputprefix| is a prefix to use for the header guards and filename. """ depsname = ".deps/" + outputprefix + ".pp" root = CGBindingRoot(config, outputprefix, webidlfile) replaceFileIfChanged(outputprefix + ".h", root.declare()) replaceFileIfChanged(outputprefix + ".cpp", root.define()) mk = Makefile() rule = mk.create_rule([outputprefix + '.h', outputprefix + '.cpp']) rule.add_dependencies(os.path.join(srcprefix, x) for x in root.deps()) rule.add_dependencies(iter_modules_in_path(topsrcdir)) with open(depsname, 'w') as f: mk.dump(f)
def generate_binding_files(config, outputprefix, srcprefix, webidlfile): """ |config| Is the configuration object. |outputprefix| is a prefix to use for the header guards and filename. """ depsname = ".deps/" + outputprefix + ".pp" root = CGBindingRoot(config, outputprefix, webidlfile) replaceFileIfChanged(outputprefix + ".h", root.declare()) replaceFileIfChanged(outputprefix + ".cpp", root.define()) mk = Makefile() rule = mk.create_rule([outputprefix + ".h", outputprefix + ".cpp"]) rule.add_dependencies(os.path.join(srcprefix, x) for x in root.deps()) rule.add_dependencies(iter_modules_in_path(topsrcdir)) with open(depsname, "w") as f: mk.dump(f)