Skip to content

Commit 4694501

Browse files
committed
py/makemoduledefs.py: Allow multiple ways to register a module.
For example, ussl can come from axtls or mbedtls. If neither are enabled then don't try and set an empty definition twice, and only include it once in MICROPY_REGISTERED_MODULES. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
1 parent bc42db4 commit 4694501

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

py/makemoduledefs.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,18 +59,21 @@ def generate_module_table_header(modules):
5959
"""
6060

6161
# Print header file for all external modules.
62-
mod_defs = []
62+
mod_defs = set()
6363
print("// Automatically generated by makemoduledefs.py.\n")
6464
for module_name, obj_module, enabled_define in modules:
6565
mod_def = "MODULE_DEF_{}".format(module_name.upper())
66-
mod_defs.append(mod_def)
66+
mod_defs.add(mod_def)
6767
print(
6868
(
6969
"#if ({enabled_define})\n"
7070
" extern const struct _mp_obj_module_t {obj_module};\n"
71+
" #undef {mod_def}\n"
7172
" #define {mod_def} {{ MP_ROM_QSTR({module_name}), MP_ROM_PTR(&{obj_module}) }},\n"
7273
"#else\n"
73-
" #define {mod_def}\n"
74+
" #ifndef {mod_def}\n"
75+
" #define {mod_def}\n"
76+
" #endif\n"
7477
"#endif\n"
7578
).format(
7679
module_name=module_name,
@@ -82,7 +85,7 @@ def generate_module_table_header(modules):
8285

8386
print("\n#define MICROPY_REGISTERED_MODULES \\")
8487

85-
for mod_def in mod_defs:
88+
for mod_def in sorted(mod_defs):
8689
print(" {mod_def} \\".format(mod_def=mod_def))
8790

8891
print("// MICROPY_REGISTERED_MODULES")

0 commit comments

Comments
 (0)