diff --git a/.github/workflows/micropython_lvgl_ci.yml b/.github/workflows/micropython_lvgl_ci.yml index 5f7039345..4eecfb87c 100644 --- a/.github/workflows/micropython_lvgl_ci.yml +++ b/.github/workflows/micropython_lvgl_ci.yml @@ -73,7 +73,7 @@ jobs: run: | source tools/ci.sh && ci_stm32_setup make -C ports/stm32 BOARD=PYBV11 submodules - make -j $(nproc) -C ports/stm32 BOARD=PYBV11 USER_C_MODULES=../../user_modules LV_CONF_PATH=../../user_modules/lv_binding_micropython/ports/stm32/lv_conf_stm32.h + make -j $(nproc) -C ports/stm32 BOARD=PYBV11 USER_C_MODULES=../../user_modules LV_CONF_PATH=$(pwd)/user_modules/lv_binding_micropython/ports/stm32/lv_conf_stm32.h # Raspberry Pi Pico port - name: Build rp2 port if: matrix.port == 'rp2' @@ -88,7 +88,7 @@ jobs: run: | source tools/ci.sh && ci_esp32_idf_setup source tools/ci.sh && ci_esp32_build_common - make -C ports/esp32 BOARD=ESP32_GENERIC_S3 USER_C_MODULES=../../user_modules/lv_binding_micropython/micropython.cmake + make -C ports/esp32 BOARD=ESP32_GENERIC_S3 # Unix port - name: Build unix port diff --git a/gen/gen_mpy.py b/gen/gen_mpy.py index ee61a87be..6e8b7bc11 100644 --- a/gen/gen_mpy.py +++ b/gen/gen_mpy.py @@ -1832,7 +1832,13 @@ def register_int_ptr_type(convertor, *types): unsigned long long val = 0; bool big_endian = !(__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__); + // mp_obj_int_to_bytes() replaced mp_obj_int_to_bytes_impl() in MicroPython + // 1.29 (commit e00daa3a), adding is_signed and overflow_check parameters. +#if MICROPY_VERSION >= MICROPY_MAKE_VERSION(1, 29, 0) + mp_obj_int_to_bytes(obj, sizeof(val), (byte*)&val, big_endian, false, false); +#else mp_obj_int_to_bytes_impl(obj, big_endian, sizeof(val), (byte*)&val); +#endif return val; } diff --git a/gen/lv_mpy_example.c b/gen/lv_mpy_example.c index b109545fe..3957671fd 100644 --- a/gen/lv_mpy_example.c +++ b/gen/lv_mpy_example.c @@ -778,7 +778,13 @@ STATIC unsigned long long mp_obj_get_ull(mp_obj_t obj) unsigned long long val = 0; bool big_endian = !(__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__); + // mp_obj_int_to_bytes() replaced mp_obj_int_to_bytes_impl() in MicroPython + // 1.29 (commit e00daa3a), adding is_signed and overflow_check parameters. +#if MICROPY_VERSION >= MICROPY_MAKE_VERSION(1, 29, 0) + mp_obj_int_to_bytes(obj, sizeof(val), (byte*)&val, big_endian, false, false); +#else mp_obj_int_to_bytes_impl(obj, big_endian, sizeof(val), (byte*)&val); +#endif return val; } diff --git a/micropython.mk b/micropython.mk index 6aa6c3df3..57dd60fdb 100644 --- a/micropython.mk +++ b/micropython.mk @@ -90,7 +90,7 @@ $(LVGL_MPY): $(ALL_LVGL_SRC) $(LVGL_BINDING_DIR)/gen/gen_mpy.py -I $(LVGL_BINDING_DIR)/pycparser/utils/fake_libc_include \ -I $(LVGL_BINDING_DIR)/stubs/include \ $(CFLAGS_USERMOD) \ - $(LVGL_DIR)/lvgl_private.h | $(LV_PP_FILTER) > $(LVGL_PP) + $(LVGL_DIR)/lvgl.h | $(LV_PP_FILTER) > $(LVGL_PP) $(Q)$(PYTHON) $(LVGL_BINDING_DIR)/gen/gen_mpy.py -M lvgl -MP lv -MD $(LVGL_MPY_METADATA) -E $(LVGL_PP) $(LVGL_DIR)/lvgl.h > $@ .PHONY: LVGL_MPY