Skip to content

Commit 12955be

Browse files
committed
fix(build): enable LV_CONF_PATH option
This allows to set custom `lv_conf.h` file per board in `mpconfigboard.(h,cmake)`
1 parent 6a5eb88 commit 12955be

File tree

3 files changed

+64
-12
lines changed

3 files changed

+64
-12
lines changed

micropython.cmake

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ idf_build_set_property(COMPILE_OPTIONS "-Wno-unused-function" APPEND)
1212
idf_build_set_property(SRCS "${LV_SRC}" APPEND)
1313
idf_build_set_property(INCLUDE_DIRS "${LV_INCLUDE}" APPEND)
1414

15+
# idf_build_set_property(INCLUDE_DIRS "${LV_INCLUDE}" APPEND)
16+
17+
# DEBUG LV_CONF_PATH
18+
message(STATUS "LV_CONF_PATH=${LV_CONF_PATH}")
19+
1520
# Fix for idf 5.2.x
1621
idf_build_get_property(component_targets __COMPONENT_TARGETS)
1722
string(REPLACE "___idf_lvgl" "" component_targets "${component_targets}")
@@ -40,13 +45,19 @@ target_compile_options(lvgl_interface INTERFACE ${LV_CFLAGS})
4045
add_library(usermod_lvgl INTERFACE)
4146
target_sources(usermod_lvgl INTERFACE ${LV_SRC})
4247
target_include_directories(usermod_lvgl INTERFACE ${LV_INCLUDE})
43-
48+
if (DEFINED LV_CONF_DIR)
49+
target_include_directories(usermod_lvgl INTERFACE ${LV_CONF_DIR})
50+
endif()
4451

4552
file(WRITE ${LV_MP} "")
4653

4754
target_link_libraries(usermod_lvgl INTERFACE lvgl_interface)
4855

4956
# # # make usermod (target declared by Micropython for all user compiled modules) link to bindings
5057
# # # this way the bindings (and transitively lvgl_interface) get proper compilation flags
58+
if (DEFINED LV_CONF_DIR)
59+
target_include_directories(usermod INTERFACE ${LV_CONF_DIR})
60+
endif()
61+
target_compile_options(usermod INTERFACE -DLV_CONF_PATH=${LV_CONF_PATH})
5162
target_link_libraries(usermod INTERFACE usermod_lvgl)
5263

micropython.mk

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ CFLAGS_EXTMOD += $(SDL_CFLAGS_EXTMOD) -DMICROPY_SDL=1
1515
LDFLAGS_EXTMOD += $(SDL_LDFLAGS_EXTMOD)
1616
endif
1717

18+
# Avoid including unwanted local headers other than sdl2
19+
ifeq ($(UNAME_S),Darwin)
20+
CFLAGS_EXTMOD:=$(filter-out -I/usr/local/include,$(CFLAGS_EXTMOD))
21+
endif
22+
1823
RLOTTIE_CFLAGS_EXTMOD := $(shell pkg-config --silence-errors --cflags rlottie)
1924
RLOTTIE_LDFLAGS_EXTMOD := $(shell pkg-config --silence-errors --libs rlottie)
2025
ifneq ($(RLOTTIE_LDFLAGS_EXTMOD),)
@@ -29,13 +34,15 @@ CFLAGS_EXTMOD += $(FREETYPE_CFLAGS_EXTMOD) -DMICROPY_FREETYPE=1
2934
LDFLAGS_EXTMOD += $(FREETYPE_LDFLAGS_EXTMOD)
3035
endif
3136

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
37+
# Enable FFMPEG
38+
# FFMPEG_LIBS := libavformat libavcodec libswscale libavutil
39+
# FFMPEG_CFLAGS_EXTMOD := $(shell pkg-config --silence-errors --cflags $(FFMPEG_LIBS))
40+
# FFMPEG_LDFLAGS_EXTMOD := $(shell pkg-config --silence-errors --libs $(FFMPEG_LIBS))
41+
# ifneq ($(FFMPEG_LDFLAGS_EXTMOD),)
42+
# CFLAGS_EXTMOD += $(FFMPEG_CFLAGS_EXTMOD) -DMICROPY_FFMPEG=1
43+
# LDFLAGS_EXTMOD += $(FFMPEG_LDFLAGS_EXTMOD)
44+
# endif
45+
3946
endif
4047

4148
################################################################################
@@ -44,15 +51,27 @@ endif
4451

4552

4653
LVGL_BINDING_DIR := $(USERMOD_DIR)
54+
ifeq ($(LV_CONF_PATH),)
55+
LV_CONF_PATH = $(LVGL_BINDING_DIR)/lv_conf.h
56+
endif
57+
58+
# LV_CONF_PATH DEBUG
59+
$(info LV_CONF_PATH is $(LV_CONF_PATH))
60+
4761

4862
LVGL_DIR = $(LVGL_BINDING_DIR)/lvgl
4963
LVGL_GENERIC_DRV_DIR = $(LVGL_BINDING_DIR)/driver/generic
5064
INC += -I$(LVGL_BINDING_DIR)
51-
ALL_LVGL_SRC = $(shell find $(LVGL_DIR) -type f -name '*.h') $(LVGL_BINDING_DIR)/lv_conf.h
65+
ALL_LVGL_SRC = $(shell find $(LVGL_DIR) -type f -name '*.h') $(LV_CONF_PATH)
5266
LVGL_PP = $(BUILD)/lvgl/lvgl.pp.c
5367
LVGL_MPY = $(BUILD)/lvgl/lv_mpy.c
5468
LVGL_MPY_METADATA = $(BUILD)/lvgl/lv_mpy.json
5569
CFLAGS_EXTMOD += $(LV_CFLAGS)
70+
CFLAGS_EXTMOD += -DLV_CONF_PATH=$(LV_CONF_PATH)
71+
72+
73+
# CFLAGS DEBUG
74+
$(info CFLAGS_EXTMOD is $(CFLAGS_EXTMOD))
5675

5776
$(LVGL_MPY): $(ALL_LVGL_SRC) $(LVGL_BINDING_DIR)/gen/gen_mpy.py
5877
$(ECHO) "LVGL-GEN $@"

mkrules_usermod.cmake

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@ find_program(AWK awk mawk gawk)
55

66
set(LV_BINDINGS_DIR ${CMAKE_CURRENT_LIST_DIR})
77

8+
# first check
9+
if(NOT DEFINED LV_CONF_PATH)
10+
set(LV_CONF_PATH ${LV_BINDINGS_DIR}/lv_conf.h)
11+
12+
message(STATUS "LV_CONF_PATH=${LV_CONF_PATH}")
13+
endif()
14+
815
# Common function for creating LV bindings
916

1017
function(lv_bindings)
@@ -21,17 +28,25 @@ function(lv_bindings)
2128
set(LV_PP ${LV_OUTPUT}.pp)
2229
set(LV_MPY_METADATA ${LV_OUTPUT}.json)
2330

31+
# message(STATUS "LV_CONF_PATH=${LV_CONF_PATH}")
32+
# message(STATUS "LV_COMPILE_OPTIONS=${LV_COMPILE_OPTIONS}")
33+
34+
# message(STATUS "LV_PP_OPTIONS=${LV_PP_OPTIONS}")
35+
# message(STATUS "LV_CFLAGS=${LV_CFLAGS}")
36+
2437
add_custom_command(
2538
OUTPUT
2639
${LV_PP}
2740
COMMAND
28-
${CMAKE_C_COMPILER} -E -DPYCPARSER ${LV_COMPILE_OPTIONS} ${LV_PP_OPTIONS} "${LV_CFLAGS}" -I ${LV_BINDINGS_DIR}/pycparser/utils/fake_libc_include ${MICROPY_CPP_FLAGS} ${LV_INPUT} > ${LV_PP}
41+
${CMAKE_C_COMPILER} -E -DPYCPARSER -DLV_CONF_PATH=${LV_CONF_PATH} ${LV_COMPILE_OPTIONS} ${LV_PP_OPTIONS} "${LV_CFLAGS}" -I ${LV_BINDINGS_DIR}/pycparser/utils/fake_libc_include ${MICROPY_CPP_FLAGS} ${LV_INPUT} > ${LV_PP}
2942
DEPENDS
3043
${LV_INPUT}
3144
${LV_DEPENDS}
3245
${LV_BINDINGS_DIR}/pycparser/utils/fake_libc_include
3346
IMPLICIT_DEPENDS
3447
C ${LV_INPUT}
48+
COMMENT
49+
"LV_BINDINGS CPP"
3550
VERBATIM
3651
COMMAND_EXPAND_LISTS
3752
)
@@ -60,6 +75,9 @@ function(lv_bindings)
6075
${AWK} ${LV_AWK_COMMAND} ${LV_PP} > ${LV_PP_FILTERED}
6176
DEPENDS
6277
${LV_PP}
78+
79+
COMMENT
80+
"LV_BINDINGS: FILTER"
6381
VERBATIM
6482
COMMAND_EXPAND_LISTS
6583
)
@@ -71,10 +89,13 @@ function(lv_bindings)
7189
OUTPUT
7290
${LV_OUTPUT}
7391
COMMAND
74-
${Python3_EXECUTABLE} ${LV_BINDINGS_DIR}/gen/gen_mpy.py ${LV_GEN_OPTIONS} -MD ${LV_MPY_METADATA} -E ${LV_PP_FILTERED} ${LV_INPUT} > ${LV_OUTPUT} || (rm -f ${LV_OUTPUT} && /bin/false)
92+
${Python3_EXECUTABLE} ${LV_BINDINGS_DIR}/gen/gen_mpy.py ${LV_GEN_OPTIONS} -DLV_CONF_PATH=${LV_CONF_PATH} -MD ${LV_MPY_METADATA} -E ${LV_PP_FILTERED} ${LV_INPUT} > ${LV_OUTPUT} || (rm -f ${LV_OUTPUT} && /bin/false)
7593
DEPENDS
7694
${LV_BINDINGS_DIR}/gen/gen_mpy.py
7795
${LV_PP_FILTERED}
96+
97+
COMMENT
98+
"LV_BINDINGS GEN MPY"
7899
COMMAND_EXPAND_LISTS
79100
)
80101

@@ -95,7 +116,7 @@ function(all_lv_bindings)
95116

96117
# LVGL bindings
97118

98-
file(GLOB_RECURSE LVGL_HEADERS ${LVGL_DIR}/src/*.h ${LV_BINDINGS_DIR}/lv_conf.h)
119+
file(GLOB_RECURSE LVGL_HEADERS ${LVGL_DIR}/src/*.h ${LV_CONF_PATH})
99120
lv_bindings(
100121
OUTPUT
101122
${LV_MP}
@@ -155,3 +176,4 @@ set(LV_SRC
155176
# ${LV_ESPIDF}
156177
# )
157178
# endif(ESP_PLATFORM)
179+

0 commit comments

Comments
 (0)