summaryrefslogtreecommitdiffstatshomepage
path: root/py/makemoduledefs.py
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2023-06-12 13:09:48 +1000
committerDamien George <damien@micropython.org>2023-06-14 19:03:46 +1000
commit5ce1a03a78bf87c914d53f63a35cf2b81963e6e4 (patch)
tree93aca7cbe52a9edd02441372041e6d1927b58852 /py/makemoduledefs.py
parent44295c9daa8a9210e2855ef431de21362c0cb662 (diff)
downloadmicropython-5ce1a03a78bf87c914d53f63a35cf2b81963e6e4.tar.gz
micropython-5ce1a03a78bf87c914d53f63a35cf2b81963e6e4.zip
py/makemoduledefs.py: Automatically declare delegation attr functions.
So that the delegation functions don't need to be put somewhere global, like in mpconfigport.h. That would otherwise make it hard for extension modules to use delegation. Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'py/makemoduledefs.py')
-rw-r--r--py/makemoduledefs.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/py/makemoduledefs.py b/py/makemoduledefs.py
index 66d4bff65c..29162ab387 100644
--- a/py/makemoduledefs.py
+++ b/py/makemoduledefs.py
@@ -106,7 +106,10 @@ def generate_module_delegations(delegations):
if not delegations:
return
- print("\n#define MICROPY_MODULE_DELEGATIONS \\")
+ print()
+ for obj_module, fun_name in delegations:
+ print("extern void {}(mp_obj_t self_in, qstr attr, mp_obj_t *dest);".format(fun_name))
+ print("#define MICROPY_MODULE_DELEGATIONS \\")
for obj_module, fun_name in delegations:
print(
" {{ MP_ROM_PTR(&{obj_module}), {fun_name} }}, \\".format(