@@ -366,3 +366,66 @@ include $(TOP)/extmod/btstack/btstack.mk
366366endif
367367
368368endif
369+
370+ # ###############################################################################
371+ # LVGL
372+
373+ # Additional optional libraries
374+
375+ ifneq ($(UNAME_S ) ,Darwin)
376+ CFLAGS_EXTMOD += -DMICROPY_FB=1
377+ endif
378+
379+ SDL_CFLAGS_EXTMOD := $(shell pkg-config --silence-errors --cflags sdl2)
380+ SDL_LDFLAGS_EXTMOD := $(shell pkg-config --silence-errors --libs sdl2)
381+ ifneq ($(SDL_LDFLAGS_EXTMOD ) ,)
382+ CFLAGS_EXTMOD += $(SDL_CFLAGS_EXTMOD ) -DMICROPY_SDL=1
383+ LDFLAGS_EXTMOD += $(SDL_LDFLAGS_EXTMOD )
384+ endif
385+
386+ RLOTTIE_CFLAGS_EXTMOD := $(shell pkg-config --silence-errors --cflags rlottie)
387+ RLOTTIE_LDFLAGS_EXTMOD := $(shell pkg-config --silence-errors --libs rlottie)
388+ ifneq ($(RLOTTIE_LDFLAGS_EXTMOD ) ,)
389+ CFLAGS_EXTMOD += $(RLOTTIE_CFLAGS_EXTMOD ) -DMICROPY_RLOTTIE=1
390+ LDFLAGS_EXTMOD += $(RLOTTIE_LDFLAGS_EXTMOD )
391+ endif
392+
393+ FREETYPE_CFLAGS_EXTMOD := $(shell pkg-config --silence-errors --cflags freetype2)
394+ FREETYPE_LDFLAGS_EXTMOD := $(shell pkg-config --silence-errors --libs freetype2)
395+ ifneq ($(FREETYPE_LDFLAGS_EXTMOD ) ,)
396+ CFLAGS_EXTMOD += $(FREETYPE_CFLAGS_EXTMOD ) -DMICROPY_FREETYPE=1
397+ LDFLAGS_EXTMOD += $(FREETYPE_LDFLAGS_EXTMOD )
398+ endif
399+
400+ FFMPEG_LIBS := libavformat libavcodec libswscale libavutil
401+ FFMPEG_CFLAGS_EXTMOD := $(shell pkg-config --silence-errors --cflags $(FFMPEG_LIBS ) )
402+ FFMPEG_LDFLAGS_EXTMOD := $(shell pkg-config --silence-errors --libs $(FFMPEG_LIBS ) )
403+ ifneq ($(FFMPEG_LDFLAGS_EXTMOD ) ,)
404+ CFLAGS_EXTMOD += $(FFMPEG_CFLAGS_EXTMOD ) -DMICROPY_FFMPEG=1
405+ LDFLAGS_EXTMOD += $(FFMPEG_LDFLAGS_EXTMOD )
406+ endif
407+
408+ # LVGL build rules
409+
410+ LVGL_BINDING_DIR = $(TOP ) /lib/lv_bindings
411+ LVGL_DIR = $(LVGL_BINDING_DIR ) /lvgl
412+ LVGL_GENERIC_DRV_DIR = $(LVGL_BINDING_DIR ) /driver/generic
413+ INC += -I$(LVGL_BINDING_DIR )
414+ ALL_LVGL_SRC = $(shell find $(LVGL_DIR ) -type f -name '* .h') $(LVGL_BINDING_DIR ) /lv_conf.h
415+ LVGL_PP = $(BUILD ) /lvgl/lvgl.pp.c
416+ LVGL_MPY = $(BUILD ) /lvgl/lv_mpy.c
417+ LVGL_MPY_METADATA = $(BUILD ) /lvgl/lv_mpy.json
418+ CFLAGS_EXTMOD += $(LV_CFLAGS )
419+
420+ $(LVGL_MPY ) : $(ALL_LVGL_SRC ) $(LVGL_BINDING_DIR ) /gen/gen_mpy.py
421+ $(ECHO ) " LVGL-GEN $@ "
422+ $(Q ) mkdir -p $(dir $@ )
423+ $(Q )$(CPP ) $(CFLAGS_EXTMOD ) -DPYCPARSER -x c -I $(LVGL_BINDING_DIR ) /pycparser/utils/fake_libc_include $(INC ) $(LVGL_DIR ) /lvgl.h > $(LVGL_PP )
424+ $(Q )$(PYTHON ) $(LVGL_BINDING_DIR ) /gen/gen_mpy.py -M lvgl -MP lv -MD $(LVGL_MPY_METADATA ) -E $(LVGL_PP ) $(LVGL_DIR ) /lvgl.h > $@
425+
426+ .PHONY : LVGL_MPY
427+ LVGL_MPY : $(LVGL_MPY )
428+
429+ CFLAGS_EXTMOD += -Wno-unused-function
430+ SRC_THIRDPARTY_C += $(subst $(TOP ) /,,$(shell find $(LVGL_DIR ) /src $(LVGL_DIR ) /examples $(LVGL_GENERIC_DRV_DIR ) -type f -name "* .c") )
431+ SRC_EXTMOD_C += $(LVGL_MPY )
0 commit comments