Skip to content

Commit d7ffcf6

Browse files
committed
unix: Enable lv_binding_micropython as user C mod.
1 parent f47c1fa commit d7ffcf6

File tree

2 files changed

+74
-0
lines changed

2 files changed

+74
-0
lines changed

micropython.mk

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
2+
################################################################################
3+
# LVGL unix optional libraries
4+
# Update CFLAGS_EXTMOD and LDFLAGS_EXTMOD for LVGL extenral library,
5+
# but do that only on the unix port, for unix specific dependencies
6+
7+
ifneq ($(UNAME_S),Darwin)
8+
CFLAGS_EXTMOD += -DMICROPY_FB=1
9+
endif
10+
11+
SDL_CFLAGS_EXTMOD := $(shell pkg-config --silence-errors --cflags sdl2)
12+
SDL_LDFLAGS_EXTMOD := $(shell pkg-config --silence-errors --libs sdl2)
13+
ifneq ($(SDL_LDFLAGS_EXTMOD),)
14+
CFLAGS_EXTMOD += $(SDL_CFLAGS_EXTMOD) -DMICROPY_SDL=1
15+
LDFLAGS_EXTMOD += $(SDL_LDFLAGS_EXTMOD)
16+
endif
17+
18+
RLOTTIE_CFLAGS_EXTMOD := $(shell pkg-config --silence-errors --cflags rlottie)
19+
RLOTTIE_LDFLAGS_EXTMOD := $(shell pkg-config --silence-errors --libs rlottie)
20+
ifneq ($(RLOTTIE_LDFLAGS_EXTMOD),)
21+
CFLAGS_EXTMOD += $(RLOTTIE_CFLAGS_EXTMOD) -DMICROPY_RLOTTIE=1
22+
LDFLAGS_EXTMOD += $(RLOTTIE_LDFLAGS_EXTMOD)
23+
endif
24+
25+
FREETYPE_CFLAGS_EXTMOD := $(shell pkg-config --silence-errors --cflags freetype2)
26+
FREETYPE_LDFLAGS_EXTMOD := $(shell pkg-config --silence-errors --libs freetype2)
27+
ifneq ($(FREETYPE_LDFLAGS_EXTMOD),)
28+
CFLAGS_EXTMOD += $(FREETYPE_CFLAGS_EXTMOD) -DMICROPY_FREETYPE=1
29+
LDFLAGS_EXTMOD += $(FREETYPE_LDFLAGS_EXTMOD)
30+
endif
31+
32+
FFMPEG_LIBS := libavformat libavcodec libswscale libavutil
33+
FFMPEG_CFLAGS_EXTMOD := $(shell pkg-config --silence-errors --cflags $(FFMPEG_LIBS))
34+
FFMPEG_LDFLAGS_EXTMOD := $(shell pkg-config --silence-errors --libs $(FFMPEG_LIBS))
35+
ifneq ($(FFMPEG_LDFLAGS_EXTMOD),)
36+
CFLAGS_EXTMOD += $(FFMPEG_CFLAGS_EXTMOD) -DMICROPY_FFMPEG=1
37+
LDFLAGS_EXTMOD += $(FFMPEG_LDFLAGS_EXTMOD)
38+
endif
39+
40+
################################################################################
41+
42+
# LVGL build rules
43+
44+
45+
LVGL_BINDING_DIR := $(USERMOD_DIR)
46+
47+
LVGL_DIR = $(LVGL_BINDING_DIR)/lvgl
48+
LVGL_GENERIC_DRV_DIR = $(LVGL_BINDING_DIR)/driver/generic
49+
INC += -I$(LVGL_BINDING_DIR)
50+
ALL_LVGL_SRC = $(shell find $(LVGL_DIR) -type f -name '*.h') $(LVGL_BINDING_DIR)/lv_conf.h
51+
LVGL_PP = $(BUILD)/lvgl/lvgl.pp.c
52+
LVGL_MPY = $(BUILD)/lvgl/lv_mpy.c
53+
LVGL_MPY_METADATA = $(BUILD)/lvgl/lv_mpy.json
54+
CFLAGS_EXTMOD += $(LV_CFLAGS)
55+
56+
$(LVGL_MPY): $(ALL_LVGL_SRC) $(LVGL_BINDING_DIR)/gen/gen_mpy.py
57+
$(ECHO) "LVGL-GEN $@"
58+
$(Q)mkdir -p $(dir $@)
59+
$(Q)$(CPP) $(CFLAGS_EXTMOD) -DPYCPARSER -x c -I $(LVGL_BINDING_DIR)/pycparser/utils/fake_libc_include $(INC) $(LVGL_DIR)/lvgl.h > $(LVGL_PP)
60+
$(Q)$(PYTHON) $(LVGL_BINDING_DIR)/gen/gen_mpy.py -M lvgl -MP lv -MD $(LVGL_MPY_METADATA) -E $(LVGL_PP) $(LVGL_DIR)/lvgl.h > $@
61+
62+
.PHONY: LVGL_MPY
63+
LVGL_MPY: $(LVGL_MPY)
64+
65+
CFLAGS_EXTMOD += -Wno-unused-function
66+
CFLAGS_EXTRA += -Wno-unused-function
67+
SRC_THIRDPARTY_C += $(subst $(TOP)/,,$(shell find $(LVGL_DIR)/src $(LVGL_DIR)/examples $(LVGL_GENERIC_DRV_DIR) -type f -name "*.c"))
68+
SRC_EXTMOD_C += $(LVGL_MPY)

ports/unix/manifest.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module("evdev.py", base_path="../../driver/linux")
2+
module("lv_timer.py", base_path="../../driver/linux")
3+
module("display_driver_utils.py", base_path="../../lib")
4+
module("display_driver.py", base_path="../../lib")
5+
module("fs_driver.py", base_path="../../lib")
6+
module("lv_utils.py", base_path="../../lib")

0 commit comments

Comments
 (0)