@@ -17,6 +17,23 @@ config BR2_PACKAGE_MICROPYTHON_LIB
help
Core Python libraries ported to MicroPython.
+config BR2_PACKAGE_MICROPYTHON_MANIFEST
+ string "Path to a manifest.py file"
+ help
+ MicroPython allows Python code to be “frozen” as bytecode
+ into its binary, as an alternative to loading code from
+ the filesystem.
+
+ A list of "frozen" modules can be provided using a "manifest.py"
+ file. You can set the path to such file using this variable.
+
+ See MicroPython's documentation for more information on how to
+ use the file.
+
+ Note: in Buildroot, only modules provided with micropython-lib
+ can be frozen with a manifest; freezing arbitrary files is
+ currently not supported.
+
endif # BR2_PACKAGE_MICROPYTHON
comment "micropython needs a toolchain w/ threads, dynamic library"
@@ -43,6 +43,11 @@ else
MICROPYTHON_MAKE_OPTS += MICROPY_PY_FFI=0
endif
+ifneq ($(BR2_PACKAGE_MICROPYTHON_MANIFEST),"")
+MICROPYTHON_MAKE_OPTS += \
+ FROZEN_MANIFEST=$(BR2_PACKAGE_MICROPYTHON_MANIFEST)
+endif
+
define MICROPYTHON_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/mpy-cross
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/ports/unix \
Micropython can embed packages an modules as frozen bytecode. What code gets built this way can be defined by means of a "manifest.py" file. This commit exposes the variable FROZEN_MANIFEST to Buildroot users through a new variable called BR2_PACKAGE_MICROPYTHON_MANIFEST. Please check Micropython's documentation for more information: https://docs.micropython.org/en/latest/reference/manifest.html We only support freezing of modules from micropython-lib. Freezing arbitrary modules would require some handling of absoulte paths, and a guarantee that the files be available before micropython is built, which is considered a bit too complex; an interested party can provide such support in the future. Signed-off-by: Abilio Marques <abiliojr@gmail.com> --- package/micropython/Config.in | 17 +++++++++++++++++ package/micropython/micropython.mk | 5 +++++ 2 files changed, 22 insertions(+)