@@ -4,18 +4,34 @@ find_package(Python3 REQUIRED COMPONENTS Interpreter)
44
55get_filename_component (BINDING_DIR ${CMAKE_CURRENT_LIST_DIR} /../.. ABSOLUTE )
66
7+ set (LVGL_HEADER "${BINDING_DIR} /build/lvgl_header.h" )
8+ set (FAKE_LIBC_PATH "${BINDING_DIR} /gen/fake_libc" )
9+
710separate_arguments (LV_CFLAGS_ENV UNIX_COMMAND $ENV{LV_CFLAGS} )
11+ separate_arguments (SECOND_BUILD_ENV UNIX_COMMAND $ENV{SECOND_BUILD} )
12+
13+ list (APPEND LV_CFLAGS_ENV
14+ -std=c11
15+ -Wno-incompatible-pointer-types
16+ -I${BINDING_DIR} /lib
17+ -I${BINDING_DIR} /lib/lvgl
18+ )
19+
20+ list (APPEND LV_CFLAGS ${LV_CFLAGS_ENV} )
821list (APPEND LV_CFLAGS
9- ${LV_CFLAGS_ENV}
10- -Wno-unused-function
1122 -DMICROPY_FLOAT=1
1223)
1324
14- separate_arguments (SECOND_BUILD_ENV UNIX_COMMAND $ENV{SECOND_BUILD} )
25+ list (APPEND LV_PP_CFLAGS ${LV_CFLAGS_ENV} )
26+ list (APPEND LV_PP_CFLAGS
27+ -E
28+ -I{FAKE_LIBC_PATH}
29+ -Wno-unused-function
30+ -DPYCPARSER
31+ )
1532
16- set (LVGL_HEADER "${BINDING_DIR} /build/lvgl_header.h" )
1733
18- file (GLOB_RECURSE LVGL_HEADERS ${BINDING_DIR} /lib/lvgl/src/*.h ${BINDING_DIR} /lib/lv_conf.h)
34+ # file(GLOB_RECURSE LVGL_HEADERS ${BINDING_DIR}/lib/lvgl/src/*.h ${BINDING_DIR}/lib/lv_conf.h)
1935
2036# this MUST be an execute_process because of the order in which cmake does things
2137# if add_custom_command is used it errors becasue add_custom_command doesn't
@@ -27,7 +43,22 @@ file(GLOB_RECURSE LVGL_HEADERS ${BINDING_DIR}/lib/lvgl/src/*.h ${BINDING_DIR}/li
2743if (${SECOND_BUILD_ENV} EQUAL "0" )
2844 execute_process (
2945 COMMAND
30- ${Python3_EXECUTABLE} ${BINDING_DIR} /gen/$ENV{GEN_SCRIPT} _api_gen_mpy.py ${LV_CFLAGS} --output =${CMAKE_BINARY_DIR} /lv_mp.c --include =${BINDING_DIR} /lib --include =${BINDING_DIR} /lib/lvgl --board=$ENV{LV_PORT} --module_name=lvgl --module_prefix=lv --metadata=${CMAKE_BINARY_DIR} /lv_mp.c.json --header_file=${LVGL_HEADER}
46+ ${CMAKE_C_COMPILER} ${LV_PP_CFLAGS} ${LVGL_HEADER} >> ${CMAKE_BINARY_DIR} /lv_mp.pp
47+ WORKING_DIRECTORY
48+ ${CMAKE_CURRENT_LIST_DIR}
49+ RESULT_VARIABLE mpy_pp_result
50+ OUTPUT_VARIABLE mpy_pp_output
51+ )
52+
53+ if (${mpy_pp_result} GREATER "0" )
54+ message ("OUTPUT: ${mpy_pp_output} " )
55+ message ("RESULT: ${mpy_pp_result} " )
56+ message (FATAL_ERROR "Failed to generate ${CMAKE_BINARY_DIR} /lv_mp.pp" )
57+ endif ()
58+
59+ execute_process (
60+ COMMAND
61+ ${Python3_EXECUTABLE} ${BINDING_DIR} /gen/$ENV{GEN_SCRIPT} _api_gen_mpy.py --cflags="${LV_PP_CFLAGS} " --output =${CMAKE_BINARY_DIR} /lv_mp.c --pp_file=${CMAKE_BINARY_DIR} /lv_mp.pp --board=$ENV{LV_PORT} --module_name=lvgl --module_prefix=lv --metadata=${CMAKE_BINARY_DIR} /lv_mp.c.json --header_file=${LVGL_HEADER}
3162 WORKING_DIRECTORY
3263 ${CMAKE_CURRENT_LIST_DIR}
3364
@@ -38,7 +69,7 @@ if(${SECOND_BUILD_ENV} EQUAL "0")
3869 if (${mpy_result} GREATER "0" )
3970 message ("OUTPUT: ${mpy_output} " )
4071 message ("RESULT: ${mpy_result} " )
41- message ( FATAL_ERROR "Failed to generate ${CMAKE_BINARY_DIR} /lv_mp.c" )
72+ message (FATAL_ERROR "Failed to generate ${CMAKE_BINARY_DIR} /lv_mp.c" )
4273 endif ()
4374endif ()
4475
0 commit comments