Skip to content

Commit bb85f2e

Browse files
committed
littlevgl sample update
1 parent a661c49 commit bb85f2e

File tree

8 files changed

+103
-105
lines changed

8 files changed

+103
-105
lines changed

samples/littlevgl/README.md

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
"littlevgl" sample introduction
22
==============
3-
This sample demonstrates that a graphic user interface application in WebAssembly by compiling the LittlevGL, an open-source embedded 2d graphic library into the WASM bytecode.
3+
This sample demonstrates that a graphic user interface application in WebAssembly by compiling the LittlevGL v5.3, an open-source embedded 2d graphic library into the WASM bytecode.
44

5-
In this sample, the whole LittlevGL source code is built into the WebAssembly code with the user application. The platform interfaces defined by LittlevGL is implemented in the runtime and exported to the application through the declarations from source "ext_lib_export.c" as below:
5+
In this sample, the whole LittlevGL v5.3 source code is built into the WebAssembly code with the user application. The platform interfaces defined by LittlevGL is implemented in the runtime and registered for WASM application through calling wasm_runtime_full_init().
66

7-
EXPORT_WASM_API(display_input_read),
8-
EXPORT_WASM_API(display_flush),
9-
EXPORT_WASM_API(display_fill),
10-
EXPORT_WASM_API(display_vdb_write),
11-
EXPORT_WASM_API(display_map),
12-
EXPORT_WASM_API(time_get_ms),
7+
```
8+
static NativeSymbol native_symbols[] = {
9+
EXPORT_WASM_API_WITH_SIG(display_input_read, "(*)i"),
10+
EXPORT_WASM_API_WITH_SIG(display_flush, "(iiii*)"),
11+
EXPORT_WASM_API_WITH_SIG(display_fill, "(iiii*)"),
12+
EXPORT_WASM_API_WITH_SIG(display_vdb_write, "(*iii*i)"),
13+
EXPORT_WASM_API_WITH_SIG(display_map, "(iiii*)"),
14+
EXPORT_WASM_API_WITH_SIG(time_get_ms, "()i")
15+
};
16+
```
1317

1418
The runtime component supports building target for Linux and Zephyr/STM Nucleo board. The beauty of this sample is the WebAssembly application can have identical display and behavior when running from both runtime environments. That implies we can do majority of application validation from desktop environment as long as two runtime distributions support the same set of application interface.
1519

@@ -56,14 +60,21 @@ Build and Run
5660
- Build</br>
5761
`./build.sh`</br>
5862
All binaries are in "out", which contains "host_tool", "vgl_native_ui_app", "ui_app.wasm" "ui_app_no_wasi.wasm "and "vgl_wasm_runtime".
59-
- Run native Linux application</br>
63+
- Run the native Linux build of the lvgl sample (no wasm) </br>
6064
`./vgl_native_ui_app`</br>
6165

6266
- Run WASM VM Linux applicaton & install WASM APP</br>
6367
First start vgl_wasm_runtime in server mode.</br>
6468
`./vgl_wasm_runtime -s`</br>
65-
Then install wasm APP use host tool.</br>
66-
`./host_tool -i ui_app -f ui_app.wasm`</br>
69+
Then install and uninstall wasm APPs by using host tool.</br>
70+
`./host_tool -i ui_wasi -f ui_app_wasi.wasm`</br>
71+
`./host_tool -q`</br>
72+
`./host_tool -u ui_wasi`</br>
73+
`./host_tool -i ui_no_wasi -f ui_app_builtin_libc.wasm`</br>
74+
`./host_tool -q`</br>
75+
`./host_tool -u ui_no_wasi`</br>
76+
77+
6778

6879
Test on Zephyr
6980
================================
@@ -140,9 +151,9 @@ We can use a STM32 NUCLEO_F767ZI board with ILI9341 display and XPT2046 touch s
140151
141152
- Install WASM application to Zephyr using host_tool</br>
142153
First, connect PC and STM32 with UART. Then install to use host_tool.</br>
143-
`./host_tool -D /dev/ttyUSBXXX -i ui_app -f ui_app_no_wasi.wasm`
144-
**Note**: WASI is unavailable on zephyr currently, so you have to use the ui_app_no_wasi.wasm which doesn't depend on WASI.
154+
`./host_tool -D /dev/ttyUSBXXX -i ui_app -f ui_app_builtin_libc.wasm`
155+
**Note**: WASI is unavailable on zephyr currently, so you have to use the ui_app_builtin_libc.wasm which doesn't depend on WASI.
145156
146157
- Install AOT version WASM application
147-
`wamrc --target=thumbv7 --target-abi=eabi --cpu=cortex-m7 -o ui_app_no_wasi.aot ui_app_no_wasi.wasm`
158+
`wamrc --target=thumbv7 --target-abi=eabi --cpu=cortex-m7 -o ui_app_no_wasi.aot ui_app_builtin_libc.wasm`
148159
`./host_tool -D /dev/ttyUSBXXX -i ui_app -f ui_app_no_wasi.aot`

samples/littlevgl/build.sh

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@ rm -rf ${OUT_DIR}
2626
mkdir ${OUT_DIR}
2727

2828

29-
cd ${WAMR_DIR}/core/shared/mem-alloc
30-
if [ ! -d "tlsf" ]; then
31-
git clone https://github.com/mattconte/tlsf
32-
fi
33-
34-
cd ${WAMR_DIR}/core/deps
29+
cd ${BUILD_DIR}
3530
if [ ! -d "lvgl" ]; then
36-
git clone https://github.com/littlevgl/lvgl.git --branch v6.0.1
31+
echo "starting download lvgl for v5.3 ..."
32+
git clone https://github.com/littlevgl/lvgl.git --branch v5.3
33+
if [ $? != 0 ];then
34+
echo "download lvgl repo failed: $?\n"
35+
exit 2
36+
fi
3737
fi
3838

3939
echo "##################### 0. build wamr-sdk littlevgl start#####################"
@@ -92,7 +92,6 @@ if [ ! -d "${PROJECT_DIR}/wasm-apps/lvgl" ]; then
9292
fi
9393
fi
9494
./build_wasm_app.sh
95-
mv ui_app.wasm ${OUT_DIR}/
96-
mv ui_app_no_wasi.wasm ${OUT_DIR}/
97-
rm -fr ${PROJECT_DIR}/wasm-apps/lvgl
95+
mv *.wasm ${OUT_DIR}/
96+
9897
echo "##################### build wasm ui app end#####################"

samples/littlevgl/vgl-native-ui-app/CMakeLists.txt

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,29 +24,14 @@ if (CMAKE_SIZEOF_VOID_P EQUAL 8)
2424
endif ()
2525

2626
set(lv_name lvgl)
27-
set(LVGL_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/${lv_name})
27+
set(LVGL_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/../build/lvgl)
2828
set(LVGL_DRIVER_DIR ${CMAKE_CURRENT_LIST_DIR}/lv-drivers)
2929

3030
message(${LVGL_SOURCE_DIR})
3131
include( ExternalProject )
3232

3333
add_definitions(-DLV_CONF_INCLUDE_SIMPLE)
3434

35-
36-
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt.in ${CMAKE_CURRENT_BINARY_DIR}/download_lvgl/CMakeLists.txt)
37-
38-
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
39-
RESULT_VARIABLE result
40-
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/download_lvgl )
41-
if(result)
42-
message(FATAL_ERROR "CMake step for lvgl failed: ${result}")
43-
endif()
44-
execute_process(COMMAND ${CMAKE_COMMAND} --build .
45-
RESULT_VARIABLE result
46-
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/download_lvgl )
47-
if(result)
48-
message(FATAL_ERROR "Build step for lvgl failed: ${result}")
49-
endif()
5035
SET (LVGL_SOURCES
5136
${LVGL_SOURCE_DIR}/lv_core/lv_group.c
5237
${LVGL_SOURCE_DIR}/lv_core/lv_indev.c

samples/littlevgl/vgl-native-ui-app/CMakeLists.txt.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ExternalProject_Add(${lv_name}
1010
GIT_REPOSITORY https://github.com/littlevgl/lvgl.git
1111
GIT_TAG v5.3
1212
BINARY_DIR ""
13-
SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/lvgl"
13+
SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/../build/lvgl"
1414
CONFIGURE_COMMAND ""
1515
BUILD_COMMAND ""
1616
INSTALL_COMMAND ""

samples/littlevgl/wamr_config_littlevgl.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ set (WAMR_BUILD_TARGET X86_64)
33
set (WAMR_BUILD_INTERP 1)
44
set (WAMR_BUILD_AOT 1)
55
set (WAMR_BUILD_JIT 0)
6-
set (WAMR_BUILD_LIBC_BUILTIN 0)
6+
set (WAMR_BUILD_LIBC_BUILTIN 1)
77
set (WAMR_BUILD_LIBC_WASI 1)
88
set (WAMR_BUILD_APP_FRAMEWORK 1)
99
set (WAMR_BUILD_APP_LIST WAMR_APP_BUILD_BASE WAMR_APP_BUILD_SENSOR WAMR_APP_BUILD_CONNECTION)

samples/littlevgl/wasm-apps/Makefile_wasm_app

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5,43 +5,44 @@ CC = /opt/wasi-sdk/bin/clang
55
LVGL_DIR = ${shell pwd}
66
SDK_DIR = $(LVGL_DIR)/../../../wamr-sdk/out/littlevgl/app-sdk
77
APP_FRAMEWORK_DIR = $(SDK_DIR)/wamr-app-framework
8+
LVGL_REPO_PATH=../build/lvgl
89

910
CFLAGS += -O3 \
1011
-I$(LVGL_DIR) \
11-
-I$(LVGL_DIR)/lvgl \
12+
-I$(LVGL_DIR)/../build \
1213
-I$(LVGL_DIR)/lv_drivers \
1314
-I$(LVGL_DIR)/src \
1415
-I$(LVGL_DIR)/../lv_config \
1516
-I$(APP_FRAMEWORK_DIR)/include
1617

17-
SRCS += lvgl/lv_draw/lv_draw_line.c lvgl/lv_draw/lv_draw_rbasic.c
18-
SRCS += lvgl/lv_draw/lv_draw_img.c lvgl/lv_draw/lv_draw_arc.c
19-
SRCS += lvgl/lv_draw/lv_draw_rect.c lvgl/lv_draw/lv_draw_triangle.c
20-
SRCS += lvgl/lv_draw/lv_draw.c lvgl/lv_draw/lv_draw_label.c
21-
SRCS += lvgl/lv_draw/lv_draw_vbasic.c lvgl/lv_fonts/lv_font_builtin.c
22-
SRCS += lvgl/lv_fonts/lv_font_dejavu_20.c
23-
SRCS += lvgl/lv_objx/lv_img.c
24-
SRCS += lvgl/lv_objx/lv_roller.c lvgl/lv_objx/lv_cb.c lvgl/lv_objx/lv_led.c lvgl/lv_objx/lv_cont.c
25-
SRCS += lvgl/lv_objx/lv_calendar.c lvgl/lv_objx/lv_gauge.c lvgl/lv_objx/lv_page.c
26-
SRCS += lvgl/lv_objx/lv_list.c lvgl/lv_objx/lv_bar.c lvgl/lv_objx/lv_tabview.c
27-
SRCS += lvgl/lv_objx/lv_mbox.c lvgl/lv_objx/lv_objx_templ.c lvgl/lv_objx/lv_sw.c
28-
SRCS += lvgl/lv_objx/lv_label.c lvgl/lv_objx/lv_slider.c lvgl/lv_objx/lv_ddlist.c
29-
SRCS += lvgl/lv_objx/lv_imgbtn.c lvgl/lv_objx/lv_line.c lvgl/lv_objx/lv_chart.c
30-
SRCS += lvgl/lv_objx/lv_btnm.c lvgl/lv_objx/lv_arc.c lvgl/lv_objx/lv_preload.c
31-
SRCS += lvgl/lv_objx/lv_win.c lvgl/lv_objx/lv_lmeter.c lvgl/lv_objx/lv_btn.c
32-
SRCS += lvgl/lv_objx/lv_ta.c lvgl/lv_misc/lv_log.c lvgl/lv_misc/lv_fs.c
33-
SRCS += lvgl/lv_misc/lv_task.c lvgl/lv_misc/lv_circ.c lvgl/lv_misc/lv_anim.c
34-
SRCS += lvgl/lv_misc/lv_color.c lvgl/lv_misc/lv_txt.c lvgl/lv_misc/lv_math.c
35-
SRCS += lvgl/lv_misc/lv_mem.c lvgl/lv_misc/lv_font.c lvgl/lv_misc/lv_ll.c
36-
SRCS += lvgl/lv_misc/lv_area.c lvgl/lv_misc/lv_templ.c lvgl/lv_misc/lv_ufs.c
37-
SRCS += lvgl/lv_misc/lv_gc.c
38-
SRCS += lvgl/lv_hal/lv_hal_tick.c lvgl/lv_hal/lv_hal_indev.c lvgl/lv_hal/lv_hal_disp.c
39-
SRCS += lvgl/lv_themes/lv_theme_mono.c lvgl/lv_themes/lv_theme_templ.c
40-
SRCS += lvgl/lv_themes/lv_theme_material.c lvgl/lv_themes/lv_theme.c
41-
SRCS += lvgl/lv_themes/lv_theme_night.c lvgl/lv_themes/lv_theme_zen.c lvgl/lv_themes/lv_theme_nemo.c
42-
SRCS += lvgl/lv_themes/lv_theme_alien.c lvgl/lv_themes/lv_theme_default.c
43-
SRCS += lvgl/lv_core/lv_group.c lvgl/lv_core/lv_style.c lvgl/lv_core/lv_indev.c
44-
SRCS += lvgl/lv_core/lv_vdb.c lvgl/lv_core/lv_obj.c lvgl/lv_core/lv_refr.c
18+
SRCS += ${LVGL_REPO_PATH}/lv_draw/lv_draw_line.c ${LVGL_REPO_PATH}/lv_draw/lv_draw_rbasic.c
19+
SRCS += ${LVGL_REPO_PATH}/lv_draw/lv_draw_img.c ${LVGL_REPO_PATH}/lv_draw/lv_draw_arc.c
20+
SRCS += ${LVGL_REPO_PATH}/lv_draw/lv_draw_rect.c ${LVGL_REPO_PATH}/lv_draw/lv_draw_triangle.c
21+
SRCS += ${LVGL_REPO_PATH}/lv_draw/lv_draw.c ${LVGL_REPO_PATH}/lv_draw/lv_draw_label.c
22+
SRCS += ${LVGL_REPO_PATH}/lv_draw/lv_draw_vbasic.c ${LVGL_REPO_PATH}/lv_fonts/lv_font_builtin.c
23+
SRCS += ${LVGL_REPO_PATH}/lv_fonts/lv_font_dejavu_20.c
24+
SRCS += ${LVGL_REPO_PATH}/lv_objx/lv_img.c
25+
SRCS += ${LVGL_REPO_PATH}/lv_objx/lv_roller.c ${LVGL_REPO_PATH}/lv_objx/lv_cb.c ${LVGL_REPO_PATH}/lv_objx/lv_led.c ${LVGL_REPO_PATH}/lv_objx/lv_cont.c
26+
SRCS += ${LVGL_REPO_PATH}/lv_objx/lv_calendar.c ${LVGL_REPO_PATH}/lv_objx/lv_gauge.c ${LVGL_REPO_PATH}/lv_objx/lv_page.c
27+
SRCS += ${LVGL_REPO_PATH}/lv_objx/lv_list.c ${LVGL_REPO_PATH}/lv_objx/lv_bar.c ${LVGL_REPO_PATH}/lv_objx/lv_tabview.c
28+
SRCS += ${LVGL_REPO_PATH}/lv_objx/lv_mbox.c ${LVGL_REPO_PATH}/lv_objx/lv_objx_templ.c ${LVGL_REPO_PATH}/lv_objx/lv_sw.c
29+
SRCS += ${LVGL_REPO_PATH}/lv_objx/lv_label.c ${LVGL_REPO_PATH}/lv_objx/lv_slider.c ${LVGL_REPO_PATH}/lv_objx/lv_ddlist.c
30+
SRCS += ${LVGL_REPO_PATH}/lv_objx/lv_imgbtn.c ${LVGL_REPO_PATH}/lv_objx/lv_line.c ${LVGL_REPO_PATH}/lv_objx/lv_chart.c
31+
SRCS += ${LVGL_REPO_PATH}/lv_objx/lv_btnm.c ${LVGL_REPO_PATH}/lv_objx/lv_arc.c ${LVGL_REPO_PATH}/lv_objx/lv_preload.c
32+
SRCS += ${LVGL_REPO_PATH}/lv_objx/lv_win.c ${LVGL_REPO_PATH}/lv_objx/lv_lmeter.c ${LVGL_REPO_PATH}/lv_objx/lv_btn.c
33+
SRCS += ${LVGL_REPO_PATH}/lv_objx/lv_ta.c ${LVGL_REPO_PATH}/lv_misc/lv_log.c ${LVGL_REPO_PATH}/lv_misc/lv_fs.c
34+
SRCS += ${LVGL_REPO_PATH}/lv_misc/lv_task.c ${LVGL_REPO_PATH}/lv_misc/lv_circ.c ${LVGL_REPO_PATH}/lv_misc/lv_anim.c
35+
SRCS += ${LVGL_REPO_PATH}/lv_misc/lv_color.c ${LVGL_REPO_PATH}/lv_misc/lv_txt.c ${LVGL_REPO_PATH}/lv_misc/lv_math.c
36+
SRCS += ${LVGL_REPO_PATH}/lv_misc/lv_mem.c ${LVGL_REPO_PATH}/lv_misc/lv_font.c ${LVGL_REPO_PATH}/lv_misc/lv_ll.c
37+
SRCS += ${LVGL_REPO_PATH}/lv_misc/lv_area.c ${LVGL_REPO_PATH}/lv_misc/lv_templ.c ${LVGL_REPO_PATH}/lv_misc/lv_ufs.c
38+
SRCS += ${LVGL_REPO_PATH}/lv_misc/lv_gc.c
39+
SRCS += ${LVGL_REPO_PATH}/lv_hal/lv_hal_tick.c ${LVGL_REPO_PATH}/lv_hal/lv_hal_indev.c ${LVGL_REPO_PATH}/lv_hal/lv_hal_disp.c
40+
SRCS += ${LVGL_REPO_PATH}/lv_themes/lv_theme_mono.c ${LVGL_REPO_PATH}/lv_themes/lv_theme_templ.c
41+
SRCS += ${LVGL_REPO_PATH}/lv_themes/lv_theme_material.c ${LVGL_REPO_PATH}/lv_themes/lv_theme.c
42+
SRCS += ${LVGL_REPO_PATH}/lv_themes/lv_theme_night.c ${LVGL_REPO_PATH}/lv_themes/lv_theme_zen.c ${LVGL_REPO_PATH}/lv_themes/lv_theme_nemo.c
43+
SRCS += ${LVGL_REPO_PATH}/lv_themes/lv_theme_alien.c ${LVGL_REPO_PATH}/lv_themes/lv_theme_default.c
44+
SRCS += ${LVGL_REPO_PATH}/lv_core/lv_group.c ${LVGL_REPO_PATH}/lv_core/lv_style.c ${LVGL_REPO_PATH}/lv_core/lv_indev.c
45+
SRCS += ${LVGL_REPO_PATH}/lv_core/lv_vdb.c ${LVGL_REPO_PATH}/lv_core/lv_obj.c ${LVGL_REPO_PATH}/lv_core/lv_refr.c
4546
SRCS += $(LVGL_DIR)/src/main.c
4647

4748
all:
@@ -53,4 +54,4 @@ all:
5354
-Wl,--no-threads,--strip-all,--no-entry \
5455
-Wl,--export=on_init -Wl,--export=on_timer_callback \
5556
-Wl,--export=__heap_base,--export=__data_end \
56-
-o ui_app.wasm
57+
-o ui_app_wasi.wasm

samples/littlevgl/wasm-apps/Makefile_wasm_app_no_wasi

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,43 +6,44 @@ LVGL_DIR = ${shell pwd}
66
WAMR_DIR = ${LVGL_DIR}/../../..
77
SDK_DIR = $(LVGL_DIR)/../../../wamr-sdk/out/littlevgl/app-sdk
88
APP_FRAMEWORK_DIR = $(SDK_DIR)/wamr-app-framework
9+
LVGL_REPO_PATH=../build/lvgl
910

1011
CFLAGS += -O3 \
1112
-I$(LVGL_DIR) \
12-
-I$(LVGL_DIR)/lvgl \
13+
-I$(LVGL_DIR)/../build \
1314
-I$(LVGL_DIR)/lv_drivers \
1415
-I$(LVGL_DIR)/src \
1516
-I$(LVGL_DIR)/../lv_config \
1617
-I$(APP_FRAMEWORK_DIR)/include
1718

18-
SRCS += lvgl/lv_draw/lv_draw_line.c lvgl/lv_draw/lv_draw_rbasic.c
19-
SRCS += lvgl/lv_draw/lv_draw_img.c lvgl/lv_draw/lv_draw_arc.c
20-
SRCS += lvgl/lv_draw/lv_draw_rect.c lvgl/lv_draw/lv_draw_triangle.c
21-
SRCS += lvgl/lv_draw/lv_draw.c lvgl/lv_draw/lv_draw_label.c
22-
SRCS += lvgl/lv_draw/lv_draw_vbasic.c lvgl/lv_fonts/lv_font_builtin.c
23-
SRCS += lvgl/lv_fonts/lv_font_dejavu_20.c
24-
SRCS += lvgl/lv_objx/lv_img.c
25-
SRCS += lvgl/lv_objx/lv_roller.c lvgl/lv_objx/lv_cb.c lvgl/lv_objx/lv_led.c lvgl/lv_objx/lv_cont.c
26-
SRCS += lvgl/lv_objx/lv_calendar.c lvgl/lv_objx/lv_gauge.c lvgl/lv_objx/lv_page.c
27-
SRCS += lvgl/lv_objx/lv_list.c lvgl/lv_objx/lv_bar.c lvgl/lv_objx/lv_tabview.c
28-
SRCS += lvgl/lv_objx/lv_mbox.c lvgl/lv_objx/lv_objx_templ.c lvgl/lv_objx/lv_sw.c
29-
SRCS += lvgl/lv_objx/lv_label.c lvgl/lv_objx/lv_slider.c lvgl/lv_objx/lv_ddlist.c
30-
SRCS += lvgl/lv_objx/lv_imgbtn.c lvgl/lv_objx/lv_line.c lvgl/lv_objx/lv_chart.c
31-
SRCS += lvgl/lv_objx/lv_btnm.c lvgl/lv_objx/lv_arc.c lvgl/lv_objx/lv_preload.c
32-
SRCS += lvgl/lv_objx/lv_win.c lvgl/lv_objx/lv_lmeter.c lvgl/lv_objx/lv_btn.c
33-
SRCS += lvgl/lv_objx/lv_ta.c lvgl/lv_misc/lv_log.c lvgl/lv_misc/lv_fs.c
34-
SRCS += lvgl/lv_misc/lv_task.c lvgl/lv_misc/lv_circ.c lvgl/lv_misc/lv_anim.c
35-
SRCS += lvgl/lv_misc/lv_color.c lvgl/lv_misc/lv_txt.c lvgl/lv_misc/lv_math.c
36-
SRCS += lvgl/lv_misc/lv_mem.c lvgl/lv_misc/lv_font.c lvgl/lv_misc/lv_ll.c
37-
SRCS += lvgl/lv_misc/lv_area.c lvgl/lv_misc/lv_templ.c lvgl/lv_misc/lv_ufs.c
38-
SRCS += lvgl/lv_misc/lv_gc.c
39-
SRCS += lvgl/lv_hal/lv_hal_tick.c lvgl/lv_hal/lv_hal_indev.c lvgl/lv_hal/lv_hal_disp.c
40-
SRCS += lvgl/lv_themes/lv_theme_mono.c lvgl/lv_themes/lv_theme_templ.c
41-
SRCS += lvgl/lv_themes/lv_theme_material.c lvgl/lv_themes/lv_theme.c
42-
SRCS += lvgl/lv_themes/lv_theme_night.c lvgl/lv_themes/lv_theme_zen.c lvgl/lv_themes/lv_theme_nemo.c
43-
SRCS += lvgl/lv_themes/lv_theme_alien.c lvgl/lv_themes/lv_theme_default.c
44-
SRCS += lvgl/lv_core/lv_group.c lvgl/lv_core/lv_style.c lvgl/lv_core/lv_indev.c
45-
SRCS += lvgl/lv_core/lv_vdb.c lvgl/lv_core/lv_obj.c lvgl/lv_core/lv_refr.c
19+
SRCS += $(LVGL_REPO_PATH)/lv_draw/lv_draw_line.c $(LVGL_REPO_PATH)/lv_draw/lv_draw_rbasic.c
20+
SRCS += $(LVGL_REPO_PATH)/lv_draw/lv_draw_img.c $(LVGL_REPO_PATH)/lv_draw/lv_draw_arc.c
21+
SRCS += $(LVGL_REPO_PATH)/lv_draw/lv_draw_rect.c $(LVGL_REPO_PATH)/lv_draw/lv_draw_triangle.c
22+
SRCS += $(LVGL_REPO_PATH)/lv_draw/lv_draw.c $(LVGL_REPO_PATH)/lv_draw/lv_draw_label.c
23+
SRCS += $(LVGL_REPO_PATH)/lv_draw/lv_draw_vbasic.c $(LVGL_REPO_PATH)/lv_fonts/lv_font_builtin.c
24+
SRCS += $(LVGL_REPO_PATH)/lv_fonts/lv_font_dejavu_20.c
25+
SRCS += $(LVGL_REPO_PATH)/lv_objx/lv_img.c
26+
SRCS += $(LVGL_REPO_PATH)/lv_objx/lv_roller.c $(LVGL_REPO_PATH)/lv_objx/lv_cb.c $(LVGL_REPO_PATH)/lv_objx/lv_led.c $(LVGL_REPO_PATH)/lv_objx/lv_cont.c
27+
SRCS += $(LVGL_REPO_PATH)/lv_objx/lv_calendar.c $(LVGL_REPO_PATH)/lv_objx/lv_gauge.c $(LVGL_REPO_PATH)/lv_objx/lv_page.c
28+
SRCS += $(LVGL_REPO_PATH)/lv_objx/lv_list.c $(LVGL_REPO_PATH)/lv_objx/lv_bar.c $(LVGL_REPO_PATH)/lv_objx/lv_tabview.c
29+
SRCS += $(LVGL_REPO_PATH)/lv_objx/lv_mbox.c $(LVGL_REPO_PATH)/lv_objx/lv_objx_templ.c $(LVGL_REPO_PATH)/lv_objx/lv_sw.c
30+
SRCS += $(LVGL_REPO_PATH)/lv_objx/lv_label.c $(LVGL_REPO_PATH)/lv_objx/lv_slider.c $(LVGL_REPO_PATH)/lv_objx/lv_ddlist.c
31+
SRCS += $(LVGL_REPO_PATH)/lv_objx/lv_imgbtn.c $(LVGL_REPO_PATH)/lv_objx/lv_line.c $(LVGL_REPO_PATH)/lv_objx/lv_chart.c
32+
SRCS += $(LVGL_REPO_PATH)/lv_objx/lv_btnm.c $(LVGL_REPO_PATH)/lv_objx/lv_arc.c $(LVGL_REPO_PATH)/lv_objx/lv_preload.c
33+
SRCS += $(LVGL_REPO_PATH)/lv_objx/lv_win.c $(LVGL_REPO_PATH)/lv_objx/lv_lmeter.c $(LVGL_REPO_PATH)/lv_objx/lv_btn.c
34+
SRCS += $(LVGL_REPO_PATH)/lv_objx/lv_ta.c $(LVGL_REPO_PATH)/lv_misc/lv_log.c $(LVGL_REPO_PATH)/lv_misc/lv_fs.c
35+
SRCS += $(LVGL_REPO_PATH)/lv_misc/lv_task.c $(LVGL_REPO_PATH)/lv_misc/lv_circ.c $(LVGL_REPO_PATH)/lv_misc/lv_anim.c
36+
SRCS += $(LVGL_REPO_PATH)/lv_misc/lv_color.c $(LVGL_REPO_PATH)/lv_misc/lv_txt.c $(LVGL_REPO_PATH)/lv_misc/lv_math.c
37+
SRCS += $(LVGL_REPO_PATH)/lv_misc/lv_mem.c $(LVGL_REPO_PATH)/lv_misc/lv_font.c $(LVGL_REPO_PATH)/lv_misc/lv_ll.c
38+
SRCS += $(LVGL_REPO_PATH)/lv_misc/lv_area.c $(LVGL_REPO_PATH)/lv_misc/lv_templ.c $(LVGL_REPO_PATH)/lv_misc/lv_ufs.c
39+
SRCS += $(LVGL_REPO_PATH)/lv_misc/lv_gc.c
40+
SRCS += $(LVGL_REPO_PATH)/lv_hal/lv_hal_tick.c $(LVGL_REPO_PATH)/lv_hal/lv_hal_indev.c $(LVGL_REPO_PATH)/lv_hal/lv_hal_disp.c
41+
SRCS += $(LVGL_REPO_PATH)/lv_themes/lv_theme_mono.c $(LVGL_REPO_PATH)/lv_themes/lv_theme_templ.c
42+
SRCS += $(LVGL_REPO_PATH)/lv_themes/lv_theme_material.c $(LVGL_REPO_PATH)/lv_themes/lv_theme.c
43+
SRCS += $(LVGL_REPO_PATH)/lv_themes/lv_theme_night.c $(LVGL_REPO_PATH)/lv_themes/lv_theme_zen.c $(LVGL_REPO_PATH)/lv_themes/lv_theme_nemo.c
44+
SRCS += $(LVGL_REPO_PATH)/lv_themes/lv_theme_alien.c $(LVGL_REPO_PATH)/lv_themes/lv_theme_default.c
45+
SRCS += $(LVGL_REPO_PATH)/lv_core/lv_group.c $(LVGL_REPO_PATH)/lv_core/lv_style.c $(LVGL_REPO_PATH)/lv_core/lv_indev.c
46+
SRCS += $(LVGL_REPO_PATH)/lv_core/lv_vdb.c $(LVGL_REPO_PATH)/lv_core/lv_obj.c $(LVGL_REPO_PATH)/lv_core/lv_refr.c
4647
SRCS += $(LVGL_DIR)/src/main.c
4748

4849
all:
@@ -55,4 +56,4 @@ all:
5556
-Wl,--allow-undefined \
5657
-Wl,--no-threads,--strip-all,--no-entry -nostdlib \
5758
-Wl,--export=on_init -Wl,--export=on_timer_callback \
58-
-o ui_app_no_wasi.wasm
59+
-o ui_app_builtin_libc.wasm

samples/littlevgl/wasm-apps/build_wasm_app.sh

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,10 @@ else
1313
makewrap="kwinject -o $KW_OUT_FILE make"
1414
fi
1515

16-
if [ ! -d "lvgl" ]; then
17-
git clone https://github.com/littlevgl/lvgl.git --branch v5.3
18-
fi
16+
echo "make Makefile_wasm_app"
1917
$makewrap -f Makefile_wasm_app
18+
19+
echo "make Makefile_wasm_app_no_wasi"
2020
$makewrap -f Makefile_wasm_app_no_wasi
2121

22+
echo "completed."

0 commit comments

Comments
 (0)