I also did want to mention that I set it up to statically link the library so you won’t have to worry about moving the compiled micropython binary or the location of a shared library at all. It will be compiled right into the micropython binary.
Yea, that’s cool, thanks for the help/suggestion.
It really didn’t cross my mind that the lib might be outdated, the pycparser thing is still too new for me, so I thought it had more to do with the makefile, than the lib.
I am still getting issues with building using the makefile, which I’ve adjusted a bit:
################################################################################
# libjpeg-turbo build rules
MOD_DIR := $(abspath $(USERMOD_DIR))
LIB_JPEG = $(MOD_DIR)/libjpeg-turbo
LIB_JPEG_SOURCE = $(abspath $(BUILD))/libjpeg-turbo
LIB_JPEG_BUILD = $(LIB_JPEG_SOURCE)/build
LVGL_BINDING_DIR = $(abspath $(TOP))/lib/lv_bindings
LIB_JPEG_PP = $(abspath $(BUILD))/libjpeg-turbo/libjpeg_turbo.pp.c
LIB_JPEG_MPY = $(abspath $(BUILD))/libjpeg-turbo/libjpeg_turbo_mpy.c
LIB_JPEG_MPY_METADATA = $(abspath $(BUILD))/libjpeg-turbo/libjpeg_turbo_mpy.json
CFLAGS_USERMOD += -Wno-unused-function
CFLAGS_USERMOD += -Wno-missing-field-initializers
CFLAGS_USERMOD += -I$(LIB_JPEG_BUILD)
CFLAGS_USERMOD += -I$(LIB_JPEG)
SRC_USERMOD_C += $(LIB_JPEG_MPY)
LDFLAGS_USERMOD += -L$(LIB_JPEG_BUILD)
LDFLAGS_USERMOD += -l:libjpeg.a
# Use the full path for the JPEG header
JPEG_HEADER = $(LIB_JPEG)/jpeglib.h
$(JPEG_HEADER):
$(ECHO) "LIB_JPEG-BUILD $@"
$(Q)cd $(MOD_DIR)
$(Q)[ -d libjpeg-turbo ] || git clone https://github.com/libjpeg-turbo/libjpeg-turbo
$(Q)mkdir -p $(LIB_JPEG_BUILD)
$(Q)cd $(LIB_JPEG_BUILD)
$(Q)cmake -G "Unix Makefiles" -DENABLE_SHARED=FALSE -DENABLE_STATIC=TRUE -DCMAKE_BUILD_TYPE=Release $(LIB_JPEG_SOURCE)
$(Q)make
.PHONY: JPEG_HEADER
JPEG_HEADER: $(JPEG_HEADER)
$(LIB_JPEG_PP): $(JPEG_HEADER)
$(ECHO) "LIB_JPEG-PP $@"
$(Q)mkdir -p $(dir $@)
$(Q)$(CPP) $(LIB_JPEG_CFLAGS) -DPYCPARSER -x c -I $(LVGL_BINDING_DIR)/pycparser/utils/fake_libc_include $(JPEG_HEADER) > $(LIB_JPEG_PP)
.PHONY: LIB_JPEG_PP
LIB_JPEG_PP: $(LIB_JPEG_PP)
$(LIB_JPEG_MPY): $(LVGL_BINDING_DIR)/gen/gen_mpy.py $(LIB_JPEG_PP)
$(ECHO) "LIB_JPEG-MPY $@"
$(Q)$(PYTHON) $(LVGL_BINDING_DIR)/gen/gen_mpy.py -M jpeg -MP jpeg -MD $(LIB_JPEG_MPY_METADATA) -E $(LIB_JPEG_PP) $(JPEG_HEADER) > $@
.PHONY: LIB_JPEG_MPY
LIB_JPEG_MPY: $(LIB_JPEG_MPY)
Output:
$ make -j4 -C ports/unix USER_C_MODULES="$(pwd)/custom_mod/libjpeg_turbo" V=1
make: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
Including User C Module from /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo
LIB_JPEG-BUILD /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/libjpeg-turbo/jpeglib.h
cd /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo
python3 ../../py/makeversionhdr.py build-standard/genhdr/mpversion.h
[ -d libjpeg-turbo ] || git clone https://github.com/libjpeg-turbo/libjpeg-turbo
mkdir -p /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix/build-standard/libjpeg-turbo/build
cd /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix/build-standard/libjpeg-turbo/build
cmake -G "Unix Makefiles" -DENABLE_SHARED=FALSE -DENABLE_STATIC=TRUE -DCMAKE_BUILD_TYPE=Release /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix/build-standard/libjpeg-turbo
CMake Warning:
Ignoring extra path from command line:
"/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix/build-standard/libjpeg-turbo"
CMake Error: The source directory "/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix/build-standard/libjpeg-turbo" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
make: *** [/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/micropython.mk:35: /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/libjpeg-turbo/jpeglib.h] Error 1
make: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
The confusing part is the fact that THERE IS a CMakeLists.txt right inside the directory, clearly there to be built.
The reason I’ve changed your suggestion is since I got this error before:
cmake -G "Unix Makefiles" -DENABLE_SHARED=FALSE -DENABLE_STATIC=TRUE -DCMAKE_BUILD_TYPE=Release /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/libjpeg-turbo
CMake Error: The source directory "/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/libjpeg-turbo" does not exist.
So I figured, that it is trying to build the source from the wrong directory.
I have created this structure:
lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/micropython.mk
And I am building with:
make -j4 -C ports/unix USER_C_MODULES="$(pwd)/custom_mod/libjpeg_turbo" V=1
For a bit more context
I only really jumped back into this, because having copied the JPEG code from github, I am still getting screenshot results that are distorted.
As an example:
The reason why they are distorted is beyond me and I thought I’ll experiment trying out your suggestion to possibly fix it.
It might not even solve the issue, since it could also be a race condition of LVGL updating the window while I take a snapshot.
Here’s the snapshot code for a bit more context:
def bgr_to_rgb(data):
"""Swap the BGR values to RGB in a flat bytearray."""
# Assume data is a flat bytearray in BGR format
for i in range(0, len(data), 3):
data[i], data[i+2] = data[i+2], data[i] # Swap the B and R values
return data
def take_screenshot(container: lv.obj, output_file: str, quality:int = 100):
"""Take a screenshot of a container using the LVGL snapshot API and save it to a JPG file."""
container.update_layout() # Added this here to enforce an update/rerender of screen?
snapshot = lv.snapshot_take(container, lv.COLOR_FORMAT.NATIVE)
print(f"Snapshot: {snapshot} ({type(snapshot)}, {snapshot.data_size} bytes)")
data_size = snapshot.data_size
buffer = snapshot.data.__dereference__(data_size)
container.update_layout() # again here to really make sure we have a finished update/render before serializing?
img = image(container.get_width(), container.get_height(), "rgb", bgr_to_rgb(buffer))
try:
with open(output_file, 'wb') as f:
f.write(serialize(img, quality))
except MemoryError as e:
print(e)
finally:
snapshot.destroy()
The serialize function is from here: flat/flat/jpeg.py at 43bae3d8183bc8b5b44f089ead70b6a9366da0a2 · xxyxyz/flat · GitHub
Maybe using libjpeg won’t solve this issue at all however.
BTW, the distortion does not happen every time, only sometimes, which certainly hints about some kind of race condition.
Here is a good example:
In regard to what I’m targeting:
I am only ever going to build this using the Unix port. The generator is only supposed to run there, since I’m only synthesizing user interfaces for creating datasets of LVGL UIs.
It’s working out well so far, check full source here:
The makefile was an example. It was not tested. It was to point you in the right direction. Try this instead and paste the output to me so I can see what is going on.
################################################################################
# libjpeg-turbo build rules
MOD_DIR := $(abspath $(USERMOD_DIR))
LIB_JPEG = $(MOD_DIR)/libjpeg-turbo
LIB_JPEG_BUILD = $(MOD_DIR)/libjpeg-turbo/build
LVGL_BINDING_DIR = $(abspath $(TOP))/lib/lv_bindings
LIB_JPEG_PP = $(abspath $(BUILD))/libjpeg-turbo/libjpeg_turbo.pp.c
LIB_JPEG_MPY = $(abspath $(BUILD))/libjpeg-turbo/libjpeg_turbo_mpy.c
LIB_JPEG_MPY_METADATA = $(abspath $(BUILD))/libjpeg-turbo/libjpeg_turbo_mpy.json
CFLAGS_USERMOD += -Wno-unused-function
CFLAGS_USERMOD += -Wno-missing-field-initializers
CFLAGS_USERMOD += -I$(LIB_JPEG_BUILD)
CFLAGS_USERMOD += -I$(LIB_JPEG)
SRC_USERMOD_C += $(LIB_JPEG_MPY)
LDFLAGS_USERMOD += -L$(LIB_JPEG_BUILD)
LDFLAGS_USERMOD += -l:libjpeg.a
# Use the full path for the JPEG header
JPEG_HEADER = $(LIB_JPEG)/jpeglib.h
$(JPEG_HEADER):
$(ECHO) "LIB_JPEG-BUILD $@"
cd $(MOD_DIR)
git clone https://github.com/libjpeg-turbo/libjpeg-turbo
mkdir -p $(LIB_JPEG_BUILD)
cd $(LIB_JPEG_BUILD)
cmake -G"Unix Makefiles" -DENABLE_SHARED=FALSE -DENABLE_STATIC=TRUE -DCMAKE_BUILD_TYPE=Release ..
make
.PHONY: JPEG_HEADER
JPEG_HEADER: $(JPEG_HEADER)
$(LIB_JPEG_PP): $(JPEG_HEADER)
$(ECHO) "LIB_JPEG-PP $@"
mkdir -p $(dir $@)
$(CPP) $(LIB_JPEG_CFLAGS) -DPYCPARSER -x c -I $(LVGL_BINDING_DIR)/pycparser/utils/fake_libc_include $(JPEG_HEADER) > $(LIB_JPEG_PP)
.PHONY: LIB_JPEG_PP
LIB_JPEG_PP: $(LIB_JPEG_PP)
$(LIB_JPEG_MPY): $(LVGL_BINDING_DIR)/gen/gen_mpy.py $(LIB_JPEG_PP)
$(ECHO) "LIB_JPEG-MPY $@"
$(Q)$(PYTHON) $(LVGL_BINDING_DIR)/gen/gen_mpy.py -M jpeg -MP jpeg -MD $(LIB_JPEG_MPY_METADATA) -E $(LIB_JPEG_PP) $(JPEG_HEADER) > $@
.PHONY: LIB_JPEG_MPY
LIB_JPEG_MPY: $(LIB_JPEG_MPY)
$ make -j4 -C ports/unix USER_C_MODULES="$(pwd)/custom_mod/libjpeg_turbo" V=1
make: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
Including User C Module from /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo
LIB_JPEG-BUILD /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/libjpeg-turbo/jpeglib.h
cd /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo
python3 ../../py/makeversionhdr.py build-standard/genhdr/mpversion.h
[ -d libjpeg-turbo ] || git clone https://github.com/libjpeg-turbo/libjpeg-turbo
mkdir -p /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/libjpeg-turbo/build
cd /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/libjpeg-turbo/build
cmake -G"Unix Makefiles" -DENABLE_SHARED=FALSE -DENABLE_STATIC=TRUE -DCMAKE_BUILD_TYPE=Release -S ./libjpeg-turbo
-- The C compiler identification is GNU 12.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- CMAKE_BUILD_TYPE = Release
-- VERSION = 3.0.3, BUILD = 20240516
-- 64-bit build (x86_64)
-- CMAKE_INSTALL_PREFIX = /opt/libjpeg-turbo
-- CMAKE_INSTALL_BINDIR = bin (/opt/libjpeg-turbo/bin)
-- CMAKE_INSTALL_DATAROOTDIR = (/opt/libjpeg-turbo)
-- CMAKE_INSTALL_DOCDIR = doc (/opt/libjpeg-turbo/doc)
-- CMAKE_INSTALL_INCLUDEDIR = include (/opt/libjpeg-turbo/include)
-- CMAKE_INSTALL_LIBDIR = lib64 (/opt/libjpeg-turbo/lib64)
-- CMAKE_INSTALL_MANDIR = man (/opt/libjpeg-turbo/man)
-- Shared libraries disabled (ENABLE_SHARED = 0)
-- Static libraries enabled (ENABLE_STATIC = 1)
-- Arithmetic decoding support enabled (WITH_ARITH_DEC = 1)
-- Arithmetic encoding support enabled (WITH_ARITH_ENC = 1)
-- TurboJPEG API library enabled (WITH_TURBOJPEG = 1)
-- TurboJPEG Java wrapper disabled (WITH_JAVA = 0)
-- Emulating libjpeg API/ABI v6.2 (WITH_JPEG7 = 0, WITH_JPEG8 = 0)
-- libjpeg API shared library version = 62.4.0
-- Compiler flags = -O3 -DNDEBUG
-- Linker flags =
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of size_t
-- Check size of size_t - done
-- Check size of unsigned long
-- Check size of unsigned long - done
-- Performing Test HAVE_BUILTIN_CTZL
-- Performing Test HAVE_BUILTIN_CTZL - Success
-- Performing Test RIGHT_SHIFT_IS_UNSIGNED
-- Performing Test RIGHT_SHIFT_IS_UNSIGNED - Failed
-- Performing Test HIDDEN_WORKS
-- Performing Test HIDDEN_WORKS - Success
-- HIDDEN = __attribute__((visibility("hidden")))
-- Performing Test INLINE_WORKS
-- Performing Test INLINE_WORKS - Success
-- INLINE = __inline__ __attribute__((always_inline)) (FORCE_INLINE = 1)
-- Performing Test HAVE_THREAD_LOCAL
-- Performing Test HAVE_THREAD_LOCAL - Success
-- THREAD_LOCAL = __thread
-- Performing Test HAVE_VERSION_SCRIPT
-- Performing Test HAVE_VERSION_SCRIPT - Success
-- Linker supports GNU-style version scripts
-- CMAKE_EXECUTABLE_SUFFIX =
-- Looking for a ASM_NASM compiler
-- Looking for a ASM_NASM compiler - NOTFOUND
CMake Warning at simd/CMakeLists.txt:5 (message):
SIMD extensions disabled: could not find NASM compiler. Performance will
suffer.
Call Stack (most recent call first):
simd/CMakeLists.txt:48 (simd_fail)
-- FLOATTEST8 = no-fp-contract
-- FLOATTEST12 = no-fp-contract
-- RPM architecture = x86_64, DEB architecture = amd64
-- Configuring done
-- Generating done
-- Build files have been written to: /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix
make
make[1]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
[ 1%] Building C object CMakeFiles/jpeg12-static.dir/jcapistd.c.o
... output too long ...
[100%] Built target md5cmp
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[1]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
LIB_JPEG-PP /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix/build-standard/libjpeg-turbo/libjpeg_turbo.pp.c
mkdir -p /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix/build-standard/libjpeg-turbo/
gcc -E -DPYCPARSER -x c -I ../../lib/lv_bindings/pycparser/utils/fake_libc_include /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/libjpeg-turbo/jpeglib.h > /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix/build-standard/libjpeg-turbo/libjpeg_turbo.pp.c
cc1: fatal error: /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/libjpeg-turbo/jpeglib.h: No such file or directory
compilation terminated.
make: *** [/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/micropython.mk:45: /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix/build-standard/libjpeg-turbo/libjpeg_turbo.pp.c] Error 1
make: *** Deleting file '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix/build-standard/libjpeg-turbo/libjpeg_turbo.pp.c'
make: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
easy fix…
too many libjpeg-turbo directories in the path for the header file.
check to see if this file exists.
/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/libjpeg-turbo/jpeglib.h
Lets change this…
lv_micropython/custom_mod/libjpeg_turbo/micropython.mk
make -j4 -C ports/unix USER_C_MODULES="$(pwd)/custom_mod/" V=1
get rid of that extra path for shits and giggles.
also in the preprocess rule remove the space that is in there for the include.
give this one a shot…
################################################################################
# libjpeg-turbo build rules
MOD_DIR := $(USERMOD_DIR)
LIB_JPEG = $(MOD_DIR)/libjpeg-turbo
LIB_JPEG_BUILD = $(MOD_DIR)/libjpeg-turbo/build
LVGL_BINDING_DIR = $(TOP)/lib/lv_bindings
LIB_JPEG_PP = $(BUILD)/libjpeg-turbo/libjpeg_turbo.pp
LIB_JPEG_MPY = $(BUILD)/libjpeg-turbo/libjpeg_turbo_mpy.c
LIB_JPEG_MPY_METADATA = $(BUILD)/libjpeg-turbo/libjpeg_turbo.json
CFLAGS_USERMOD += -Wno-unused-function
CFLAGS_USERMOD += -Wno-missing-field-initializers
CFLAGS_USERMOD += -I$(LIB_JPEG_BUILD)
CFLAGS_USERMOD += -I$(LIB_JPEG)
SRC_USERMOD_C += $(LIB_JPEG_MPY)
LDFLAGS_USERMOD += -L$(LIB_JPEG_BUILD)
LDFLAGS_USERMOD += -l:libjpeg.a
# Use the full path for the JPEG header
JPEG_HEADER = $(LIB_JPEG)/jpeglib.h
$(JPEG_HEADER):
$(ECHO) "LIB_JPEG-BUILD $@"
cd $(MOD_DIR)
git clone https://github.com/libjpeg-turbo/libjpeg-turbo
mkdir -p $(LIB_JPEG_BUILD)
cd $(LIB_JPEG_BUILD)
cmake -G"Unix Makefiles" -DENABLE_SHARED=FALSE -DENABLE_STATIC=TRUE -DCMAKE_BUILD_TYPE=Release ..
make
.PHONY: JPEG_HEADER
JPEG_HEADER: $(JPEG_HEADER)
$(LIB_JPEG_PP): $(JPEG_HEADER)
$(ECHO) "LIB_JPEG-PP $@"
mkdir -p $(dir $@)
$(CPP) $(LIB_JPEG_CFLAGS) $(CFLAGS_USERMOD) -DPYCPARSER -x c -I$(LVGL_BINDING_DIR)/pycparser/utils/fake_libc_include $(JPEG_HEADER) > $(LIB_JPEG_PP)
.PHONY: LIB_JPEG_PP
LIB_JPEG_PP: $(LIB_JPEG_PP)
$(LIB_JPEG_MPY): $(LVGL_BINDING_DIR)/gen/gen_mpy.py $(LIB_JPEG_PP)
$(ECHO) "LIB_JPEG-MPY $@"
$(Q)$(PYTHON) $(LVGL_BINDING_DIR)/gen/gen_mpy.py -M jpeg -MP jpeg -MD $(LIB_JPEG_MPY_METADATA) -E $(LIB_JPEG_PP) $(JPEG_HEADER) > $@
.PHONY: LIB_JPEG_MPY
LIB_JPEG_MPY: $(LIB_JPEG_MPY)
Made the suggested folder changes.
Currently:
lv_micropython/custom_mod/libjpeg_turbo/micropython.mk
That one seemed to work.
$ make -j4 -C ports/unix USER_C_MODULES="$(pwd)/custom_mod" V=1
make: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[1]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
[ 1%] Built target turbojpeg12-static
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
[ 2%] Built target turbojpeg16-static
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
[ 8%] Built target jpeg16-static
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
[ 21%] Built target jpeg12-static
[ 22%] Built target cjpeg12-static
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
[ 23%] Built target cjpeg16-static
[ 24%] Built target rdjpgcom
[ 25%] Built target djpeg12-static
[ 26%] Built target djpeg16-static
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
[ 27%] Built target wrjpgcom
[ 28%] Built target strtest
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
[ 29%] Built target md5cmp
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
[ 55%] Built target jpeg-static
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
[ 85%] Built target turbojpeg-static
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
[ 88%] Built target cjpeg-static
[ 91%] Built target jpegtran-static
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
[ 96%] Built target djpeg-static
[ 96%] Built target example-static
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
[ 98%] Built target tjunittest-static
[100%] Built target tjbench-static
make[1]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
make: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
However, when running the micropython
binary, I still can’t ìmport jpeg
take a look at the c code it generated…
Not exactly sure what to look for. It created those binaries as it said. I thought it’s going to link it to the micropython binary
/libjpeg-turbo/libjpeg_turbo_mpy.c
in the build folder. attach the file to a post for me
in the build folder. attach the file to a post for me
I figured out the issue. The micropython.mk
does not work, because every line in the makefile is on a seperate shell, so it actually never performed the steps where we want them too…
Here is my adjusted version:
################################################################################
# libjpeg-turbo build rules
MOD_DIR := $(USERMOD_DIR)
LIB_JPEG = $(MOD_DIR)/libjpeg-turbo
LIB_JPEG_BUILD = $(MOD_DIR)/libjpeg-turbo/build
LVGL_BINDING_DIR = $(TOP)/lib/lv_bindings
LIB_JPEG_PP = $(BUILD)/libjpeg-turbo/libjpeg_turbo.pp
LIB_JPEG_MPY = $(BUILD)/libjpeg-turbo/libjpeg_turbo_mpy.c
LIB_JPEG_MPY_METADATA = $(BUILD)/libjpeg-turbo/libjpeg_turbo.json
CFLAGS_USERMOD += -Wno-unused-function
CFLAGS_USERMOD += -Wno-missing-field-initializers
CFLAGS_USERMOD += -I$(LIB_JPEG_BUILD)
CFLAGS_USERMOD += -I$(LIB_JPEG)
SRC_USERMOD_C += $(LIB_JPEG_MPY)
LDFLAGS_USERMOD += -L$(LIB_JPEG_BUILD)
LDFLAGS_USERMOD += -l:libjpeg.a
# Use the full path for the JPEG header
JPEG_HEADER = $(LIB_JPEG)/jpeglib.h
$(JPEG_HEADER):
$(ECHO) "LIB_JPEG-BUILD $@"
echo "Entering $(MOD_DIR)"; \
cd $(MOD_DIR); \
echo "Cloning libjpeg-turbo"; \
[ -d libjpeg-turbo ] || git clone https://github.com/libjpeg-turbo/libjpeg-turbo; \
echo "Creating build directory"; \
mkdir -p $(LIB_JPEG_BUILD); \
echo "Entering $(LIB_JPEG_BUILD)"; \
cd $(LIB_JPEG_BUILD); \
echo "Configuring libjpeg-turbo"; \
cmake -G"Unix Makefiles" -DENABLE_SHARED=FALSE -DENABLE_STATIC=TRUE -DCMAKE_BUILD_TYPE=Release ..; \
echo "Building libjpeg-turbo"; \
make
.PHONY: JPEG_HEADER
JPEG_HEADER: $(JPEG_HEADER)
$(LIB_JPEG_PP): $(JPEG_HEADER)
$(ECHO) "LIB_JPEG-PP $@"
mkdir -p $(dir $@)
$(CPP) $(LIB_JPEG_CFLAGS) $(CFLAGS_USERMOD) -DPYCPARSER -x c -I$(LVGL_BINDING_DIR)/pycparser/utils/fake_libc_include $(JPEG_HEADER) > $(LIB_JPEG_PP)
.PHONY: LIB_JPEG_PP
LIB_JPEG_PP: $(LIB_JPEG_PP)
$(LIB_JPEG_MPY): $(LVGL_BINDING_DIR)/gen/gen_mpy.py $(LIB_JPEG_PP)
$(ECHO) "LIB_JPEG-MPY $@"
$(Q)$(PYTHON) $(LVGL_BINDING_DIR)/gen/gen_mpy.py -M jpeg -MP jpeg -MD $(LIB_JPEG_MPY_METADATA) -E $(LIB_JPEG_PP) $(JPEG_HEADER) > $@
.PHONY: LIB_JPEG_MPY
LIB_JPEG_MPY: $(LIB_JPEG_MPY)
However, this again brings me back to the original problem:
$ make -j4 -C ports/unix USER_C_MODULES="$(pwd)/custom_mod" V=1
make: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
Including User C Module from /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo
LIB_JPEG-BUILD /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/jpeglib.h
Entering /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo
python3 ../../py/makeversionhdr.py build-standard/genhdr/mpversion.h
/bin/sh: 4: @echo: Permission denied
Cloning into 'libjpeg-turbo'...
remote: Enumerating objects: 20311, done.
remote: Counting objects: 100% (1342/1342), done.
remote: Compressing objects: 100% (501/501), done.
remote: Total 20311 (delta 881), reused 1111 (delta 772), pack-reused 18969
Receiving objects: 100% (20311/20311), 17.86 MiB | 5.30 MiB/s, done.
Resolving deltas: 100% (14996/14996), done.
/bin/sh: 6: @echo: Permission denied
/bin/sh: 8: @echo: Permission denied
/bin/sh: 10: @echo: Permission denied
-- The C compiler identification is GNU 12.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- CMAKE_BUILD_TYPE = Release
-- VERSION = 3.0.4, BUILD = 20240517
-- 64-bit build (x86_64)
-- CMAKE_INSTALL_PREFIX = /opt/libjpeg-turbo
-- CMAKE_INSTALL_BINDIR = bin (/opt/libjpeg-turbo/bin)
-- CMAKE_INSTALL_DATAROOTDIR = (/opt/libjpeg-turbo)
-- CMAKE_INSTALL_DOCDIR = doc (/opt/libjpeg-turbo/doc)
-- CMAKE_INSTALL_INCLUDEDIR = include (/opt/libjpeg-turbo/include)
-- CMAKE_INSTALL_LIBDIR = lib64 (/opt/libjpeg-turbo/lib64)
-- CMAKE_INSTALL_MANDIR = man (/opt/libjpeg-turbo/man)
-- Shared libraries disabled (ENABLE_SHARED = 0)
-- Static libraries enabled (ENABLE_STATIC = 1)
-- Arithmetic decoding support enabled (WITH_ARITH_DEC = 1)
-- Arithmetic encoding support enabled (WITH_ARITH_ENC = 1)
-- TurboJPEG API library enabled (WITH_TURBOJPEG = 1)
-- TurboJPEG Java wrapper disabled (WITH_JAVA = 0)
-- Emulating libjpeg API/ABI v6.2 (WITH_JPEG7 = 0, WITH_JPEG8 = 0)
-- libjpeg API shared library version = 62.4.0
-- Compiler flags = -O3 -DNDEBUG
-- Linker flags =
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of size_t
-- Check size of size_t - done
-- Check size of unsigned long
-- Check size of unsigned long - done
-- Performing Test HAVE_BUILTIN_CTZL
-- Performing Test HAVE_BUILTIN_CTZL - Success
-- Performing Test RIGHT_SHIFT_IS_UNSIGNED
-- Performing Test RIGHT_SHIFT_IS_UNSIGNED - Failed
-- Performing Test HIDDEN_WORKS
-- Performing Test HIDDEN_WORKS - Success
-- HIDDEN = __attribute__((visibility("hidden")))
-- Performing Test INLINE_WORKS
-- Performing Test INLINE_WORKS - Success
-- INLINE = __inline__ __attribute__((always_inline)) (FORCE_INLINE = 1)
-- Performing Test HAVE_THREAD_LOCAL
-- Performing Test HAVE_THREAD_LOCAL - Success
-- THREAD_LOCAL = __thread
-- Performing Test HAVE_VERSION_SCRIPT
-- Performing Test HAVE_VERSION_SCRIPT - Success
-- Linker supports GNU-style version scripts
-- CMAKE_EXECUTABLE_SUFFIX =
-- Looking for a ASM_NASM compiler
-- Looking for a ASM_NASM compiler - NOTFOUND
CMake Warning at simd/CMakeLists.txt:5 (message):
SIMD extensions disabled: could not find NASM compiler. Performance will
suffer.
Call Stack (most recent call first):
simd/CMakeLists.txt:48 (simd_fail)
-- FLOATTEST8 = no-fp-contract
-- FLOATTEST12 = no-fp-contract
-- RPM architecture = x86_64, DEB architecture = amd64
-- Configuring done
-- Generating done
-- Build files have been written to: /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build
/bin/sh: 12: @echo: Permission denied
make[1]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
make[2]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
...
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 13%] Built target jpeg12-static
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
...
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 19%] Built target jpeg16-static
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
...
/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/jchuff.c: In function ‘jpeg_gen_optimal_table’:
/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/jchuff.c:1042:22: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
1042 | bits[codesize[i]]++;
| ~~~~~~~~~~~~~~~~~^~
/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/jchuff.c:945:9: note: at offset 33 into destination object ‘bits’ of size 33
945 | UINT8 bits[MAX_CLEN + 1]; /* bits[k] = # of symbols with code length k */
| ^~~~
...
[ 45%] Linking C static library libjpeg.a
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 45%] Built target jpeg-static
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 45%] Building C object CMakeFiles/turbojpeg12-static.dir/rdppm.c.o
[ 46%] Building C object CMakeFiles/turbojpeg12-static.dir/wrppm.c.o
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 46%] Built target turbojpeg12-static
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
...
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 47%] Built target turbojpeg16-static
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
...
[ 77%] Linking C static library libturbojpeg.a
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 77%] Built target turbojpeg-static
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 77%] Building C object CMakeFiles/tjunittest-static.dir/tjunittest.c.o
[ 77%] Building C object CMakeFiles/tjunittest-static.dir/tjutil.c.o
[ 78%] Building C object CMakeFiles/tjunittest-static.dir/md5/md5.c.o
[ 78%] Building C object CMakeFiles/tjunittest-static.dir/md5/md5hl.c.o
[ 79%] Linking C executable tjunittest-static
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 79%] Built target tjunittest-static
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 80%] Building C object CMakeFiles/tjbench-static.dir/tjbench.c.o
[ 80%] Building C object CMakeFiles/tjbench-static.dir/tjutil.c.o
[ 81%] Linking C executable tjbench-static
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 81%] Built target tjbench-static
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 82%] Building C object CMakeFiles/cjpeg12-static.dir/rdgif.c.o
[ 82%] Building C object CMakeFiles/cjpeg12-static.dir/rdppm.c.o
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 82%] Built target cjpeg12-static
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 82%] Building C object CMakeFiles/cjpeg16-static.dir/rdgif.c.o
[ 83%] Building C object CMakeFiles/cjpeg16-static.dir/rdppm.c.o
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 83%] Built target cjpeg16-static
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 83%] Building C object CMakeFiles/cjpeg-static.dir/cjpeg.c.o
[ 83%] Building C object CMakeFiles/cjpeg-static.dir/cdjpeg.c.o
[ 84%] Building C object CMakeFiles/cjpeg-static.dir/rdbmp.c.o
[ 84%] Building C object CMakeFiles/cjpeg-static.dir/rdgif.c.o
[ 85%] Building C object CMakeFiles/cjpeg-static.dir/rdppm.c.o
[ 85%] Building C object CMakeFiles/cjpeg-static.dir/rdswitch.c.o
[ 86%] Building C object CMakeFiles/cjpeg-static.dir/rdtarga.c.o
[ 86%] Linking C executable cjpeg-static
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 86%] Built target cjpeg-static
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 86%] Building C object CMakeFiles/djpeg12-static.dir/rdcolmap.c.o
[ 87%] Building C object CMakeFiles/djpeg12-static.dir/wrgif.c.o
[ 87%] Building C object CMakeFiles/djpeg12-static.dir/wrppm.c.o
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 87%] Built target djpeg12-static
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 88%] Building C object CMakeFiles/djpeg16-static.dir/wrppm.c.o
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 88%] Built target djpeg16-static
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 88%] Building C object CMakeFiles/djpeg-static.dir/djpeg.c.o
[ 89%] Building C object CMakeFiles/djpeg-static.dir/cdjpeg.c.o
[ 89%] Building C object CMakeFiles/djpeg-static.dir/rdcolmap.c.o
[ 90%] Building C object CMakeFiles/djpeg-static.dir/rdswitch.c.o
[ 90%] Building C object CMakeFiles/djpeg-static.dir/wrbmp.c.o
[ 91%] Building C object CMakeFiles/djpeg-static.dir/wrgif.c.o
[ 91%] Building C object CMakeFiles/djpeg-static.dir/wrppm.c.o
[ 91%] Building C object CMakeFiles/djpeg-static.dir/wrtarga.c.o
[ 92%] Linking C executable djpeg-static
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 92%] Built target djpeg-static
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 93%] Building C object CMakeFiles/jpegtran-static.dir/jpegtran.c.o
[ 93%] Building C object CMakeFiles/jpegtran-static.dir/cdjpeg.c.o
[ 94%] Building C object CMakeFiles/jpegtran-static.dir/rdswitch.c.o
[ 94%] Building C object CMakeFiles/jpegtran-static.dir/transupp.c.o
[ 95%] Linking C executable jpegtran-static
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 95%] Built target jpegtran-static
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 95%] Building C object CMakeFiles/example-static.dir/example.c.o
[ 96%] Linking C executable example-static
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 96%] Built target example-static
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 97%] Building C object CMakeFiles/rdjpgcom.dir/rdjpgcom.c.o
[ 97%] Linking C executable rdjpgcom
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 97%] Built target rdjpgcom
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 97%] Building C object CMakeFiles/wrjpgcom.dir/wrjpgcom.c.o
[ 98%] Linking C executable wrjpgcom
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 98%] Built target wrjpgcom
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 99%] Building C object CMakeFiles/strtest.dir/strtest.c.o
[ 99%] Linking C executable strtest
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 99%] Built target strtest
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[3]: Entering directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[ 99%] Building C object md5/CMakeFiles/md5cmp.dir/md5cmp.c.o
[ 99%] Building C object md5/CMakeFiles/md5cmp.dir/md5.c.o
[100%] Building C object md5/CMakeFiles/md5cmp.dir/md5hl.c.o
[100%] Linking C executable md5cmp
make[3]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
[100%] Built target md5cmp
make[2]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
make[1]: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/build'
LIB_JPEG-PP build-standard/libjpeg-turbo/libjpeg_turbo.pp
LIB_JPEG-MPY build-standard/libjpeg-turbo/libjpeg_turbo_mpy.c
Traceback (most recent call last):
File "/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix/../../lib/lv_bindings/gen/gen_mpy.py", line 294, in <module>
ast = parser.parse(s, filename='<none>')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/lib/lv_bindings/gen/../pycparser/pycparser/c_parser.py", line 147, in parse
return self.cparser.parse(
^^^^^^^^^^^^^^^^^^^
File "/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/lib/lv_bindings/gen/../pycparser/pycparser/ply/yacc.py", line 331, in parse
return self.parseopt_notrack(input, lexer, debug, tracking, tokenfunc)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/lib/lv_bindings/gen/../pycparser/pycparser/ply/yacc.py", line 1199, in parseopt_notrack
tok = call_errorfunc(self.errorfunc, errtoken, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/lib/lv_bindings/gen/../pycparser/pycparser/ply/yacc.py", line 193, in call_errorfunc
r = errorfunc(token)
^^^^^^^^^^^^^^^^
File "/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/lib/lv_bindings/gen/../pycparser/pycparser/c_parser.py", line 1931, in p_error
self._parse_error(
File "/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/lib/lv_bindings/gen/../pycparser/pycparser/plyparser.py", line 67, in _parse_error
raise ParseError("%s: %s" % (coord, msg))
pycparser.plyparser.ParseError: /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/jpeglib.h:841:3: before: size_t
make: *** [/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/micropython.mk:58: build-standard/libjpeg-turbo/libjpeg_turbo_mpy.c] Error 1
make: *** Deleting file 'build-standard/libjpeg-turbo/libjpeg_turbo_mpy.c'
make: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
I’ve cut only a few [Build] object xyz ...
messages, due to the input limit in the forum.
Notably, pycparser.plyparser.ParseError: /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/jpeglib.h:841:3: before: size_t
is still the culprit.
I have no idea why, but I tried running the command for the .pp
output manually:
gcc -nostdinc -Wno-unused-function -Wno-missing-field-initializers -I$(pwd)/custom_mod/libjpeg_turbo/libjpeg-turbo/build -I$(pwd)/custom_mod/libjpeg_turbo/libjpeg-turbo -DPYCPARSER -x c -I$(pwd)lib/lv_bindings/pycparser/utils/fake_libc_include $(pwd)/custom_mod/libjpeg_turbo/libjpeg-turbo/jpeglib.h > $(pwd)/ports/unix/build-standard/libjpeg-turbo/libjpeg_turbo.pp
And it produced errors:
/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/jpeglib.h:841:3: error: unknown type name ‘size_t’
841 | size_t free_in_buffer; /* # of byte spaces remaining in buffer */
| ^~~~~~
/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/jpeglib.h:853:3: error: unknown type name ‘size_t’
853 | size_t bytes_in_buffer; /* # of bytes remaining in buffer */
| ^~~~~~
/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/jpeglib.h:884:58: error: unknown type name ‘size_t’
884 | void *(*alloc_small) (j_common_ptr cinfo, int pool_id, size_t sizeofobject);
| ^~~~~~
/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/jpeglib.h:35:1: note: ‘size_t’ is defined in header ‘<stddef.h>’; did you forget to ‘#include <stddef.h>’?
34 | #include "jmorecfg.h" /* seldom changed options */
+++ |+#include <stddef.h>
35 |
/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/jpeglib.h:886:25: error: unknown type name ‘size_t’
886 | size_t sizeofobject);
| ^~~~~~
/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/jpeglib.h:886:25: note: ‘size_t’ is defined in header ‘<stddef.h>’; did you forget to ‘#include <stddef.h>’?
/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/jpeglib.h:961:34: error: unknown type name ‘size_t’
961 | size_t structsize);
| ^~~~~~
/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/jpeglib.h:961:34: note: ‘size_t’ is defined in header ‘<stddef.h>’; did you forget to ‘#include <stddef.h>’?
/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/jpeglib.h:963:36: error: unknown type name ‘size_t’
963 | size_t structsize);
| ^~~~~~
/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/jpeglib.h:963:36: note: ‘size_t’ is defined in header ‘<stddef.h>’; did you forget to ‘#include <stddef.h>’?
/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/jpeglib.h:970:52: error: unknown type name ‘FILE’
970 | EXTERN(void) jpeg_stdio_dest(j_compress_ptr cinfo, FILE *outfile);
| ^~~~
/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/jpeglib.h:35:1: note: ‘FILE’ is defined in header ‘<stdio.h>’; did you forget to ‘#include <stdio.h>’?
34 | #include "jmorecfg.h" /* seldom changed options */
+++ |+#include <stdio.h>
35 |
/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/jpeglib.h:971:53: error: unknown type name ‘FILE’
971 | EXTERN(void) jpeg_stdio_src(j_decompress_ptr cinfo, FILE *infile);
| ^~~~
/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo/libjpeg-turbo/jpeglib.h:971:53: note: ‘FILE’ is defined in header ‘<stdio.h>’; did you forget to ‘#include <stdio.h>’?
And then I tried the other way again: make -j4 -C ports/unix USER_C_MODULES="$(pwd)/custom_mod" V=1
And it suddenly worked?
Including User C Module from /home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/custom_mod/libjpeg_turbo
LIB_JPEG-MPY build-standard/libjpeg-turbo/libjpeg_turbo_mpy.c
python3 ../../py/makeversionhdr.py build-standard/genhdr/mpversion.h
GEN build-standard/genhdr/qstr.i.last
GEN build-standard/genhdr/qstr.split
GEN build-standard/genhdr/moduledefs.split
GEN build-standard/genhdr/root_pointers.split
GEN build-standard/genhdr/compressed.split
GEN build-standard/genhdr/moduledefs.collected
GEN build-standard/genhdr/qstrdefs.collected.h
GEN build-standard/genhdr/compressed.collected
Module registrations updated
GEN build-standard/genhdr/root_pointers.collected
QSTR updated
GEN build-standard/genhdr/moduledefs.h
Root pointer registrations updated
GEN build-standard/genhdr/qstrdefs.generated.h
Compressed data updated
GEN build-standard/genhdr/root_pointers.h
GEN build-standard/genhdr/compressed.data.h
CC build-standard/libjpeg-turbo/libjpeg_turbo_mpy.c
CC ../../py/mpstate.c
...
LINK build-standard/micropython
text data bss dec hex filename
1758546 228880 7472 1994898 1e7092 build-standard/micropython
make: Leaving directory '/home/rini-debian/git-stash/lvgl-ui-detector/lvgl_ui_generator_v2/lv_micropython/ports/unix'
$ ./ports/unix/build-standard/micropython
MicroPython v1.20.0-713-g30dcb7019-dirty on 2024-05-17; linux [GCC 12.2.0] version
Use Ctrl-D to exit, Ctrl-E for paste mode
>>> import jpeg
>>> # SUCCESS
No idea why that made a difference…
in the build folder. attach the file to a post for me
Since you asked before, attached are the requested files.
libjpeg_turbo_mpy.c (37.4 KB)
Doesn’t seem to work yet though…
>>> dir(jpeg)
['__class__', '__name__', '__dict__', '_nesting', 'C_Pointer', '_lv_mp_int_wrapper']