From bb85f2e39ae7764ab41c8b39efee2183b347680e Mon Sep 17 00:00:00 2001 From: Wang Xin Date: Wed, 22 Apr 2020 10:57:38 +0800 Subject: [PATCH 1/3] littlevgl sample update --- samples/littlevgl/README.md | 39 +++++++----- samples/littlevgl/build.sh | 19 +++--- .../vgl-native-ui-app/CMakeLists.txt | 17 +----- .../vgl-native-ui-app/CMakeLists.txt.in | 2 +- samples/littlevgl/wamr_config_littlevgl.cmake | 2 +- samples/littlevgl/wasm-apps/Makefile_wasm_app | 61 ++++++++++--------- .../wasm-apps/Makefile_wasm_app_no_wasi | 61 ++++++++++--------- samples/littlevgl/wasm-apps/build_wasm_app.sh | 7 ++- 8 files changed, 103 insertions(+), 105 deletions(-) diff --git a/samples/littlevgl/README.md b/samples/littlevgl/README.md index 6d5b6259..b5e3124d 100644 --- a/samples/littlevgl/README.md +++ b/samples/littlevgl/README.md @@ -1,15 +1,19 @@ "littlevgl" sample introduction ============== -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. +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. -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: +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(). - EXPORT_WASM_API(display_input_read), - EXPORT_WASM_API(display_flush), - EXPORT_WASM_API(display_fill), - EXPORT_WASM_API(display_vdb_write), - EXPORT_WASM_API(display_map), - EXPORT_WASM_API(time_get_ms), +``` +static NativeSymbol native_symbols[] = { + EXPORT_WASM_API_WITH_SIG(display_input_read, "(*)i"), + EXPORT_WASM_API_WITH_SIG(display_flush, "(iiii*)"), + EXPORT_WASM_API_WITH_SIG(display_fill, "(iiii*)"), + EXPORT_WASM_API_WITH_SIG(display_vdb_write, "(*iii*i)"), + EXPORT_WASM_API_WITH_SIG(display_map, "(iiii*)"), + EXPORT_WASM_API_WITH_SIG(time_get_ms, "()i") +}; +``` 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. @@ -56,14 +60,21 @@ Build and Run - Build
`./build.sh`
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". -- Run native Linux application
+- Run the native Linux build of the lvgl sample (no wasm)
`./vgl_native_ui_app`
- Run WASM VM Linux applicaton & install WASM APP
First start vgl_wasm_runtime in server mode.
`./vgl_wasm_runtime -s`
- Then install wasm APP use host tool.
-`./host_tool -i ui_app -f ui_app.wasm`
+ Then install and uninstall wasm APPs by using host tool.
+`./host_tool -i ui_wasi -f ui_app_wasi.wasm`
+`./host_tool -q`
+`./host_tool -u ui_wasi`
+`./host_tool -i ui_no_wasi -f ui_app_builtin_libc.wasm`
+`./host_tool -q`
+`./host_tool -u ui_no_wasi`
+ + Test on Zephyr ================================ @@ -140,9 +151,9 @@ We can use a STM32 NUCLEO_F767ZI board with ILI9341 display and XPT2046 touch s - Install WASM application to Zephyr using host_tool
First, connect PC and STM32 with UART. Then install to use host_tool.
-`./host_tool -D /dev/ttyUSBXXX -i ui_app -f ui_app_no_wasi.wasm` -**Note**: WASI is unavailable on zephyr currently, so you have to use the ui_app_no_wasi.wasm which doesn't depend on WASI. +`./host_tool -D /dev/ttyUSBXXX -i ui_app -f ui_app_builtin_libc.wasm` +**Note**: WASI is unavailable on zephyr currently, so you have to use the ui_app_builtin_libc.wasm which doesn't depend on WASI. - Install AOT version WASM application -`wamrc --target=thumbv7 --target-abi=eabi --cpu=cortex-m7 -o ui_app_no_wasi.aot ui_app_no_wasi.wasm` +`wamrc --target=thumbv7 --target-abi=eabi --cpu=cortex-m7 -o ui_app_no_wasi.aot ui_app_builtin_libc.wasm` `./host_tool -D /dev/ttyUSBXXX -i ui_app -f ui_app_no_wasi.aot` diff --git a/samples/littlevgl/build.sh b/samples/littlevgl/build.sh index dc51bdb3..9e12fe1c 100755 --- a/samples/littlevgl/build.sh +++ b/samples/littlevgl/build.sh @@ -26,14 +26,14 @@ rm -rf ${OUT_DIR} mkdir ${OUT_DIR} -cd ${WAMR_DIR}/core/shared/mem-alloc -if [ ! -d "tlsf" ]; then - git clone https://github.com/mattconte/tlsf -fi - -cd ${WAMR_DIR}/core/deps +cd ${BUILD_DIR} if [ ! -d "lvgl" ]; then - git clone https://github.com/littlevgl/lvgl.git --branch v6.0.1 + echo "starting download lvgl for v5.3 ..." + git clone https://github.com/littlevgl/lvgl.git --branch v5.3 + if [ $? != 0 ];then + echo "download lvgl repo failed: $?\n" + exit 2 + fi fi echo "##################### 0. build wamr-sdk littlevgl start#####################" @@ -92,7 +92,6 @@ if [ ! -d "${PROJECT_DIR}/wasm-apps/lvgl" ]; then fi fi ./build_wasm_app.sh -mv ui_app.wasm ${OUT_DIR}/ -mv ui_app_no_wasi.wasm ${OUT_DIR}/ -rm -fr ${PROJECT_DIR}/wasm-apps/lvgl +mv *.wasm ${OUT_DIR}/ + echo "##################### build wasm ui app end#####################" diff --git a/samples/littlevgl/vgl-native-ui-app/CMakeLists.txt b/samples/littlevgl/vgl-native-ui-app/CMakeLists.txt index 4a49c0b1..45ff9bc8 100644 --- a/samples/littlevgl/vgl-native-ui-app/CMakeLists.txt +++ b/samples/littlevgl/vgl-native-ui-app/CMakeLists.txt @@ -24,7 +24,7 @@ if (CMAKE_SIZEOF_VOID_P EQUAL 8) endif () set(lv_name lvgl) -set(LVGL_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/${lv_name}) +set(LVGL_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/../build/lvgl) set(LVGL_DRIVER_DIR ${CMAKE_CURRENT_LIST_DIR}/lv-drivers) message(${LVGL_SOURCE_DIR}) @@ -32,21 +32,6 @@ include( ExternalProject ) add_definitions(-DLV_CONF_INCLUDE_SIMPLE) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt.in ${CMAKE_CURRENT_BINARY_DIR}/download_lvgl/CMakeLists.txt) - -execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . - RESULT_VARIABLE result - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/download_lvgl ) -if(result) - message(FATAL_ERROR "CMake step for lvgl failed: ${result}") -endif() -execute_process(COMMAND ${CMAKE_COMMAND} --build . - RESULT_VARIABLE result - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/download_lvgl ) -if(result) - message(FATAL_ERROR "Build step for lvgl failed: ${result}") -endif() SET (LVGL_SOURCES ${LVGL_SOURCE_DIR}/lv_core/lv_group.c ${LVGL_SOURCE_DIR}/lv_core/lv_indev.c diff --git a/samples/littlevgl/vgl-native-ui-app/CMakeLists.txt.in b/samples/littlevgl/vgl-native-ui-app/CMakeLists.txt.in index bce7b16b..7cc57c38 100644 --- a/samples/littlevgl/vgl-native-ui-app/CMakeLists.txt.in +++ b/samples/littlevgl/vgl-native-ui-app/CMakeLists.txt.in @@ -10,7 +10,7 @@ ExternalProject_Add(${lv_name} GIT_REPOSITORY https://github.com/littlevgl/lvgl.git GIT_TAG v5.3 BINARY_DIR "" - SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/lvgl" + SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/../build/lvgl" CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" diff --git a/samples/littlevgl/wamr_config_littlevgl.cmake b/samples/littlevgl/wamr_config_littlevgl.cmake index ae0ed78e..7a9065ab 100644 --- a/samples/littlevgl/wamr_config_littlevgl.cmake +++ b/samples/littlevgl/wamr_config_littlevgl.cmake @@ -3,7 +3,7 @@ set (WAMR_BUILD_TARGET X86_64) set (WAMR_BUILD_INTERP 1) set (WAMR_BUILD_AOT 1) set (WAMR_BUILD_JIT 0) -set (WAMR_BUILD_LIBC_BUILTIN 0) +set (WAMR_BUILD_LIBC_BUILTIN 1) set (WAMR_BUILD_LIBC_WASI 1) set (WAMR_BUILD_APP_FRAMEWORK 1) set (WAMR_BUILD_APP_LIST WAMR_APP_BUILD_BASE WAMR_APP_BUILD_SENSOR WAMR_APP_BUILD_CONNECTION) diff --git a/samples/littlevgl/wasm-apps/Makefile_wasm_app b/samples/littlevgl/wasm-apps/Makefile_wasm_app index 3ec33520..adbeddcc 100644 --- a/samples/littlevgl/wasm-apps/Makefile_wasm_app +++ b/samples/littlevgl/wasm-apps/Makefile_wasm_app @@ -5,43 +5,44 @@ CC = /opt/wasi-sdk/bin/clang LVGL_DIR = ${shell pwd} SDK_DIR = $(LVGL_DIR)/../../../wamr-sdk/out/littlevgl/app-sdk APP_FRAMEWORK_DIR = $(SDK_DIR)/wamr-app-framework +LVGL_REPO_PATH=../build/lvgl CFLAGS += -O3 \ -I$(LVGL_DIR) \ - -I$(LVGL_DIR)/lvgl \ + -I$(LVGL_DIR)/../build \ -I$(LVGL_DIR)/lv_drivers \ -I$(LVGL_DIR)/src \ -I$(LVGL_DIR)/../lv_config \ -I$(APP_FRAMEWORK_DIR)/include -SRCS += lvgl/lv_draw/lv_draw_line.c lvgl/lv_draw/lv_draw_rbasic.c -SRCS += lvgl/lv_draw/lv_draw_img.c lvgl/lv_draw/lv_draw_arc.c -SRCS += lvgl/lv_draw/lv_draw_rect.c lvgl/lv_draw/lv_draw_triangle.c -SRCS += lvgl/lv_draw/lv_draw.c lvgl/lv_draw/lv_draw_label.c -SRCS += lvgl/lv_draw/lv_draw_vbasic.c lvgl/lv_fonts/lv_font_builtin.c -SRCS += lvgl/lv_fonts/lv_font_dejavu_20.c -SRCS += lvgl/lv_objx/lv_img.c -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 -SRCS += lvgl/lv_objx/lv_calendar.c lvgl/lv_objx/lv_gauge.c lvgl/lv_objx/lv_page.c -SRCS += lvgl/lv_objx/lv_list.c lvgl/lv_objx/lv_bar.c lvgl/lv_objx/lv_tabview.c -SRCS += lvgl/lv_objx/lv_mbox.c lvgl/lv_objx/lv_objx_templ.c lvgl/lv_objx/lv_sw.c -SRCS += lvgl/lv_objx/lv_label.c lvgl/lv_objx/lv_slider.c lvgl/lv_objx/lv_ddlist.c -SRCS += lvgl/lv_objx/lv_imgbtn.c lvgl/lv_objx/lv_line.c lvgl/lv_objx/lv_chart.c -SRCS += lvgl/lv_objx/lv_btnm.c lvgl/lv_objx/lv_arc.c lvgl/lv_objx/lv_preload.c -SRCS += lvgl/lv_objx/lv_win.c lvgl/lv_objx/lv_lmeter.c lvgl/lv_objx/lv_btn.c -SRCS += lvgl/lv_objx/lv_ta.c lvgl/lv_misc/lv_log.c lvgl/lv_misc/lv_fs.c -SRCS += lvgl/lv_misc/lv_task.c lvgl/lv_misc/lv_circ.c lvgl/lv_misc/lv_anim.c -SRCS += lvgl/lv_misc/lv_color.c lvgl/lv_misc/lv_txt.c lvgl/lv_misc/lv_math.c -SRCS += lvgl/lv_misc/lv_mem.c lvgl/lv_misc/lv_font.c lvgl/lv_misc/lv_ll.c -SRCS += lvgl/lv_misc/lv_area.c lvgl/lv_misc/lv_templ.c lvgl/lv_misc/lv_ufs.c -SRCS += lvgl/lv_misc/lv_gc.c -SRCS += lvgl/lv_hal/lv_hal_tick.c lvgl/lv_hal/lv_hal_indev.c lvgl/lv_hal/lv_hal_disp.c -SRCS += lvgl/lv_themes/lv_theme_mono.c lvgl/lv_themes/lv_theme_templ.c -SRCS += lvgl/lv_themes/lv_theme_material.c lvgl/lv_themes/lv_theme.c -SRCS += lvgl/lv_themes/lv_theme_night.c lvgl/lv_themes/lv_theme_zen.c lvgl/lv_themes/lv_theme_nemo.c -SRCS += lvgl/lv_themes/lv_theme_alien.c lvgl/lv_themes/lv_theme_default.c -SRCS += lvgl/lv_core/lv_group.c lvgl/lv_core/lv_style.c lvgl/lv_core/lv_indev.c -SRCS += lvgl/lv_core/lv_vdb.c lvgl/lv_core/lv_obj.c lvgl/lv_core/lv_refr.c +SRCS += ${LVGL_REPO_PATH}/lv_draw/lv_draw_line.c ${LVGL_REPO_PATH}/lv_draw/lv_draw_rbasic.c +SRCS += ${LVGL_REPO_PATH}/lv_draw/lv_draw_img.c ${LVGL_REPO_PATH}/lv_draw/lv_draw_arc.c +SRCS += ${LVGL_REPO_PATH}/lv_draw/lv_draw_rect.c ${LVGL_REPO_PATH}/lv_draw/lv_draw_triangle.c +SRCS += ${LVGL_REPO_PATH}/lv_draw/lv_draw.c ${LVGL_REPO_PATH}/lv_draw/lv_draw_label.c +SRCS += ${LVGL_REPO_PATH}/lv_draw/lv_draw_vbasic.c ${LVGL_REPO_PATH}/lv_fonts/lv_font_builtin.c +SRCS += ${LVGL_REPO_PATH}/lv_fonts/lv_font_dejavu_20.c +SRCS += ${LVGL_REPO_PATH}/lv_objx/lv_img.c +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +SRCS += ${LVGL_REPO_PATH}/lv_misc/lv_gc.c +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 +SRCS += ${LVGL_REPO_PATH}/lv_themes/lv_theme_mono.c ${LVGL_REPO_PATH}/lv_themes/lv_theme_templ.c +SRCS += ${LVGL_REPO_PATH}/lv_themes/lv_theme_material.c ${LVGL_REPO_PATH}/lv_themes/lv_theme.c +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 +SRCS += ${LVGL_REPO_PATH}/lv_themes/lv_theme_alien.c ${LVGL_REPO_PATH}/lv_themes/lv_theme_default.c +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 +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 SRCS += $(LVGL_DIR)/src/main.c all: @@ -53,4 +54,4 @@ all: -Wl,--no-threads,--strip-all,--no-entry \ -Wl,--export=on_init -Wl,--export=on_timer_callback \ -Wl,--export=__heap_base,--export=__data_end \ - -o ui_app.wasm + -o ui_app_wasi.wasm diff --git a/samples/littlevgl/wasm-apps/Makefile_wasm_app_no_wasi b/samples/littlevgl/wasm-apps/Makefile_wasm_app_no_wasi index 05a1762d..435934a5 100644 --- a/samples/littlevgl/wasm-apps/Makefile_wasm_app_no_wasi +++ b/samples/littlevgl/wasm-apps/Makefile_wasm_app_no_wasi @@ -6,43 +6,44 @@ LVGL_DIR = ${shell pwd} WAMR_DIR = ${LVGL_DIR}/../../.. SDK_DIR = $(LVGL_DIR)/../../../wamr-sdk/out/littlevgl/app-sdk APP_FRAMEWORK_DIR = $(SDK_DIR)/wamr-app-framework +LVGL_REPO_PATH=../build/lvgl CFLAGS += -O3 \ -I$(LVGL_DIR) \ - -I$(LVGL_DIR)/lvgl \ + -I$(LVGL_DIR)/../build \ -I$(LVGL_DIR)/lv_drivers \ -I$(LVGL_DIR)/src \ -I$(LVGL_DIR)/../lv_config \ -I$(APP_FRAMEWORK_DIR)/include -SRCS += lvgl/lv_draw/lv_draw_line.c lvgl/lv_draw/lv_draw_rbasic.c -SRCS += lvgl/lv_draw/lv_draw_img.c lvgl/lv_draw/lv_draw_arc.c -SRCS += lvgl/lv_draw/lv_draw_rect.c lvgl/lv_draw/lv_draw_triangle.c -SRCS += lvgl/lv_draw/lv_draw.c lvgl/lv_draw/lv_draw_label.c -SRCS += lvgl/lv_draw/lv_draw_vbasic.c lvgl/lv_fonts/lv_font_builtin.c -SRCS += lvgl/lv_fonts/lv_font_dejavu_20.c -SRCS += lvgl/lv_objx/lv_img.c -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 -SRCS += lvgl/lv_objx/lv_calendar.c lvgl/lv_objx/lv_gauge.c lvgl/lv_objx/lv_page.c -SRCS += lvgl/lv_objx/lv_list.c lvgl/lv_objx/lv_bar.c lvgl/lv_objx/lv_tabview.c -SRCS += lvgl/lv_objx/lv_mbox.c lvgl/lv_objx/lv_objx_templ.c lvgl/lv_objx/lv_sw.c -SRCS += lvgl/lv_objx/lv_label.c lvgl/lv_objx/lv_slider.c lvgl/lv_objx/lv_ddlist.c -SRCS += lvgl/lv_objx/lv_imgbtn.c lvgl/lv_objx/lv_line.c lvgl/lv_objx/lv_chart.c -SRCS += lvgl/lv_objx/lv_btnm.c lvgl/lv_objx/lv_arc.c lvgl/lv_objx/lv_preload.c -SRCS += lvgl/lv_objx/lv_win.c lvgl/lv_objx/lv_lmeter.c lvgl/lv_objx/lv_btn.c -SRCS += lvgl/lv_objx/lv_ta.c lvgl/lv_misc/lv_log.c lvgl/lv_misc/lv_fs.c -SRCS += lvgl/lv_misc/lv_task.c lvgl/lv_misc/lv_circ.c lvgl/lv_misc/lv_anim.c -SRCS += lvgl/lv_misc/lv_color.c lvgl/lv_misc/lv_txt.c lvgl/lv_misc/lv_math.c -SRCS += lvgl/lv_misc/lv_mem.c lvgl/lv_misc/lv_font.c lvgl/lv_misc/lv_ll.c -SRCS += lvgl/lv_misc/lv_area.c lvgl/lv_misc/lv_templ.c lvgl/lv_misc/lv_ufs.c -SRCS += lvgl/lv_misc/lv_gc.c -SRCS += lvgl/lv_hal/lv_hal_tick.c lvgl/lv_hal/lv_hal_indev.c lvgl/lv_hal/lv_hal_disp.c -SRCS += lvgl/lv_themes/lv_theme_mono.c lvgl/lv_themes/lv_theme_templ.c -SRCS += lvgl/lv_themes/lv_theme_material.c lvgl/lv_themes/lv_theme.c -SRCS += lvgl/lv_themes/lv_theme_night.c lvgl/lv_themes/lv_theme_zen.c lvgl/lv_themes/lv_theme_nemo.c -SRCS += lvgl/lv_themes/lv_theme_alien.c lvgl/lv_themes/lv_theme_default.c -SRCS += lvgl/lv_core/lv_group.c lvgl/lv_core/lv_style.c lvgl/lv_core/lv_indev.c -SRCS += lvgl/lv_core/lv_vdb.c lvgl/lv_core/lv_obj.c lvgl/lv_core/lv_refr.c +SRCS += $(LVGL_REPO_PATH)/lv_draw/lv_draw_line.c $(LVGL_REPO_PATH)/lv_draw/lv_draw_rbasic.c +SRCS += $(LVGL_REPO_PATH)/lv_draw/lv_draw_img.c $(LVGL_REPO_PATH)/lv_draw/lv_draw_arc.c +SRCS += $(LVGL_REPO_PATH)/lv_draw/lv_draw_rect.c $(LVGL_REPO_PATH)/lv_draw/lv_draw_triangle.c +SRCS += $(LVGL_REPO_PATH)/lv_draw/lv_draw.c $(LVGL_REPO_PATH)/lv_draw/lv_draw_label.c +SRCS += $(LVGL_REPO_PATH)/lv_draw/lv_draw_vbasic.c $(LVGL_REPO_PATH)/lv_fonts/lv_font_builtin.c +SRCS += $(LVGL_REPO_PATH)/lv_fonts/lv_font_dejavu_20.c +SRCS += $(LVGL_REPO_PATH)/lv_objx/lv_img.c +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +SRCS += $(LVGL_REPO_PATH)/lv_misc/lv_gc.c +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 +SRCS += $(LVGL_REPO_PATH)/lv_themes/lv_theme_mono.c $(LVGL_REPO_PATH)/lv_themes/lv_theme_templ.c +SRCS += $(LVGL_REPO_PATH)/lv_themes/lv_theme_material.c $(LVGL_REPO_PATH)/lv_themes/lv_theme.c +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 +SRCS += $(LVGL_REPO_PATH)/lv_themes/lv_theme_alien.c $(LVGL_REPO_PATH)/lv_themes/lv_theme_default.c +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 +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 SRCS += $(LVGL_DIR)/src/main.c all: @@ -55,4 +56,4 @@ all: -Wl,--allow-undefined \ -Wl,--no-threads,--strip-all,--no-entry -nostdlib \ -Wl,--export=on_init -Wl,--export=on_timer_callback \ - -o ui_app_no_wasi.wasm + -o ui_app_builtin_libc.wasm diff --git a/samples/littlevgl/wasm-apps/build_wasm_app.sh b/samples/littlevgl/wasm-apps/build_wasm_app.sh index 07bfa964..a86784e2 100755 --- a/samples/littlevgl/wasm-apps/build_wasm_app.sh +++ b/samples/littlevgl/wasm-apps/build_wasm_app.sh @@ -13,9 +13,10 @@ else makewrap="kwinject -o $KW_OUT_FILE make" fi -if [ ! -d "lvgl" ]; then - git clone https://github.com/littlevgl/lvgl.git --branch v5.3 -fi +echo "make Makefile_wasm_app" $makewrap -f Makefile_wasm_app + +echo "make Makefile_wasm_app_no_wasi" $makewrap -f Makefile_wasm_app_no_wasi +echo "completed." \ No newline at end of file From ed3d02e3ae7849a0379da9ff78b1d08d78178918 Mon Sep 17 00:00:00 2001 From: Wang Xin Date: Wed, 22 Apr 2020 19:03:24 +0800 Subject: [PATCH 2/3] sample gui update --- wamr-sdk/build_sdk.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/wamr-sdk/build_sdk.sh b/wamr-sdk/build_sdk.sh index 02f43e18..0b819c5d 100755 --- a/wamr-sdk/build_sdk.sh +++ b/wamr-sdk/build_sdk.sh @@ -159,9 +159,6 @@ fi echo -e "\n\n" echo "############## Start to build wasm app sdk ###############" -cd ${sdk_root}/app -rm -fr build && mkdir build -cd build # If wgl module is selected, check if the extra SDK include dir is passed by the args, prompt user to input if not. app_all_selected=`cat ${wamr_config_cmake_file} | grep WAMR_APP_BUILD_ALL` @@ -178,8 +175,15 @@ if [[ -n "${app_wgl_selected}" ]] || [[ -n "${app_all_selected}" ]]; then CM_DEXTRA_SDK_INCLUDE_PATH="-DEXTRA_SDK_INCLUDE_PATH=${extra_file_path}" fi fi + + cd ${wamr_root_dir}/core/app-framework/wgl/app + ./prepare_headers.sh fi +cd ${sdk_root}/app +rm -fr build && mkdir build +cd build + out=`grep WAMR_BUILD_LIBC_WASI ${wamr_config_cmake_file} |grep 1` if [ -n "$out" ]; then LIBC_SUPPORT="WASI" From 8c826700ae2727dd3e7fba2099a881ece95d87a2 Mon Sep 17 00:00:00 2001 From: Wang Xin Date: Sun, 4 Jul 2021 15:48:20 +0800 Subject: [PATCH 3/3] Add TSC members --- README.md | 12 ++++++++++++ TSC_Charter.md | 9 --------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 3cd807e8..d12b5e8b 100644 --- a/README.md +++ b/README.md @@ -130,6 +130,18 @@ The WAMR [samples](./samples) integrate the iwasm VM core, application manager a - **[workload](./samples/workload/README.md)**: Demonstrating how to build and run some complex workloads, e.g. tensorflow-lite, XNNPACK, wasm-av1, meshoptimizer and bwa. +Project Technical Steering Committee +==================================== +The [WAMR PTSC Charter](./TSC_Charter.md) governs the operations of the project TSC. +The current TSC members: +- [lum1n0us](https://github.com/lum1n0us) - **Liang He**, +- [qinxk-inter](https://github.com/qinxk-inter) - **Xiaokang Qin**, +- [wei-tang](https://github.com/wei-tang) - **Wei Tang**, +- [wenyongh](https://github.com/wenyongh) - **Wenyong Huang**, +- [xujuntwt95329](https://github.com/xujuntwt95329) - **Jun Xu**, +- [xwang98](https://github.com/xwang98) - **Xin Wang**, + + License ======= WAMR uses the same license as LLVM: the `Apache 2.0 license` with the LLVM diff --git a/TSC_Charter.md b/TSC_Charter.md index e2e96d41..6cb8ddd2 100644 --- a/TSC_Charter.md +++ b/TSC_Charter.md @@ -3,31 +3,22 @@ ## Section 1. Guiding Principle The WebAssembly Micro Runtime (WAMR) project is part of the - Bytecode Alliance (BA) which operates transparently, openly, - collaboratively, and ethically. Project proposals, timelines, and status - must not merely be open, but also easily visible to outsiders. ## Section 2. Project Governance under Bytecode Alliance Technical leadership for the WAMR projects within the Bytecode Alliance - is delegated to the projects through the project charter. Though the BA TSC - will not interfere with day-to-day discussions, votes or meetings of the PTSC, - the BA TSC may request additional amendments to the PTSC charter when - there is misalignment between the project charter and the BA mission and values. The PTSC structure described in this document may be overhauled as part of - establishing a BA TSC in order to adhere to constraints or requirements that - TSC will impose on project-level governance. ## Section 3. Establishment of the PTSC