xref: /freebsd-src/contrib/llvm-project/lldb/bindings/python/createPythonInit.py (revision 81ad626541db97eb356e2c1d4a20eb2a26a766ab)
1130d950cSDimitry Andricimport os
2130d950cSDimitry Andricimport sys
3130d950cSDimitry Andric
4130d950cSDimitry AndricpkgRelDir = sys.argv[1]
5130d950cSDimitry AndricpkgFiles = sys.argv[2:]
6130d950cSDimitry Andric
7130d950cSDimitry AndricgetFileName = lambda f: os.path.splitext(os.path.basename(f))[0]
8130d950cSDimitry AndricimportNames = ', '.join('"{}"'.format(getFileName(f)) for f in pkgFiles)
9130d950cSDimitry Andric
10130d950cSDimitry Andricscript = """__all__ = [{import_names}]
11130d950cSDimitry Andricfor x in __all__:
12130d950cSDimitry Andric  __import__('lldb.{pkg_name}.' + x)
13*81ad6265SDimitry Andric
14*81ad6265SDimitry Andricdef __lldb_init_module(debugger, internal_dict):
15*81ad6265SDimitry Andric  import lldb
16*81ad6265SDimitry Andric  for x in __all__:
17*81ad6265SDimitry Andric    submodule = getattr(lldb.{pkg_name}, x)
18*81ad6265SDimitry Andric    lldb_init = getattr(submodule, '__lldb_init_module', None)
19*81ad6265SDimitry Andric    if lldb_init:
20*81ad6265SDimitry Andric      lldb_init(debugger, internal_dict)
21130d950cSDimitry Andric""".format(import_names=importNames, pkg_name=pkgRelDir.replace("/", "."))
22130d950cSDimitry Andric
23130d950cSDimitry AndricpkgIniFile = os.path.normpath(os.path.join(pkgRelDir, "__init__.py"))
24130d950cSDimitry Andricwith open(pkgIniFile, "w") as f:
25130d950cSDimitry Andric    f.write(script)
26