From ccdba48d300f743c2cd248bfe58eb60f8d562498 Mon Sep 17 00:00:00 2001 From: Xu Jun <693788454@qq.com> Date: Fri, 21 Feb 2020 23:03:58 +0800 Subject: [PATCH] update menuconfig.sh --- core/app-framework/wgl/app/wasm_app.cmake | 4 + wamr-sdk/Kconfig | 33 ++----- wamr-sdk/build_sdk.sh | 28 +++++- wamr-sdk/menuconfig.sh | 112 ++++++++-------------- 4 files changed, 74 insertions(+), 103 deletions(-) diff --git a/core/app-framework/wgl/app/wasm_app.cmake b/core/app-framework/wgl/app/wasm_app.cmake index e6456637..f01be9ff 100644 --- a/core/app-framework/wgl/app/wasm_app.cmake +++ b/core/app-framework/wgl/app/wasm_app.cmake @@ -5,6 +5,10 @@ set (WASM_APP_GUI_DIR ${CMAKE_CURRENT_LIST_DIR}) set (DEPS_DIR ${WASM_APP_GUI_DIR}/../../../deps) +if (NOT EXISTS "${DEPS_DIR}/lvgl") + message (FATAL_ERROR "Can not find third party dependency: ${DEPS_DIR}/lvgl") +endif () + include_directories(${WASM_APP_GUI_DIR} ${DEPS_DIR} ${DEPS_DIR}/lvgl diff --git a/wamr-sdk/Kconfig b/wamr-sdk/Kconfig index c3958427..96c23a83 100644 --- a/wamr-sdk/Kconfig +++ b/wamr-sdk/Kconfig @@ -1,12 +1,5 @@ mainmenu "WebAssembly Micro Runtime Configuration" -config WAMR_SDK_PROFILE - string "wamr SDK profile name" - default "default" - help - create a new SDK by giving a name or overwrite - the "default" profile - choice prompt "select a build target" @@ -64,9 +57,7 @@ choice endchoice - - -choice +choice prompt "application framework" config APP_FRAMEWORK_DISABLE bool "Disable app framework" @@ -77,29 +68,17 @@ choice bool "Default components" help Default components - - config TRI_CHOICE_SYM_2 - tristate "Tristate choice sym 2" - config APP_BUILD_CUSTOM + config APP_FRAMEWORK_ALL + bool "All components" + + config APP_FRAMEWORK_CUSTOM bool "customized module config" menu "modules:" - depends on APP_BUILD_CUSTOM + depends on APP_FRAMEWORK_CUSTOM source ".wamr_modules" endmenu endchoice - -config EXTRA_INCLUDE_ENABLE - bool "enable extra include dir" - -config EXTRA_INCLUDE_PATH - string "external include path" - depends on EXTRA_INCLUDE_ENABLE - help - Pass external include path to be added in the SDK - This is useful when your app modules need some external - header files, such as the wgl modules which need some config - file when building the runtime library \ No newline at end of file diff --git a/wamr-sdk/build_sdk.sh b/wamr-sdk/build_sdk.sh index 6a64d331..3f064445 100755 --- a/wamr-sdk/build_sdk.sh +++ b/wamr-sdk/build_sdk.sh @@ -95,7 +95,7 @@ fi # cmake config file for wamr runtime: # 1. use the users provided the config cmake file path. -# 2. if user set MENU CONFIG, enter menu config to generate +# 2. if user set MENU CONFIG, enter menu config to generate # menu_config.cmake in the profile output folder # 3. If the menu_config.cmake is already in the profile folder, use it # 4. Use the default config cmake file @@ -105,16 +105,16 @@ if [[ -n "$wamr_config_cmake_file" ]]; then echo "user given file not exist: ${wamr_config_cmake_file}" exit 1 fi - + echo "User config file: [${wamr_config_cmake_file}]" - + else wamr_config_cmake_file=${out_dir}/wamr_config_${PROFILE}.cmake - # always rebuilt the sdk if user is not giving the config file + # always rebuilt the sdk if user is not giving the config file if [ -d ${curr_profile_dir} ]; then rm -rf ${curr_profile_dir} fi - + if [[ "$MENUCONFIG" = "TRUE" ]] || [[ ! -f $wamr_config_cmake_file ]]; then echo "MENUCONFIG: [${wamr_config_cmake_file}]" ./menuconfig.sh -x ${wamr_config_cmake_file} @@ -146,6 +146,24 @@ 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` +app_wgl_selected=`cat ${wamr_config_cmake_file} | grep WAMR_APP_BUILD_WGL` + +if [[ -n "${app_wgl_selected}" ]] || [[ -n "${app_all_selected}" ]]; then + if [ -z "${CMAKE_DEXTRA_SDK_INCLUDE_PATH}" ]; then + echo -e "\033[31mWGL module require lvgl config files, please input the path to the lvgl SDK include path:\033[0m" + read -a extra_file_path + + if [[ -z "${extra_file_path}" ]] || [[ ! -d "${extra_file_path}" ]]; then + echo -e "\033[31mThe extra SDK path is invalid, exiting\033[0m" + exit 1 + else + CMAKE_DEXTRA_SDK_INCLUDE_PATH="-DEXTRA_SDK_INCLUDE_PATH=${extra_file_path}" + fi + fi +fi + out=`grep WAMR_BUILD_LIBC_WASI ${wamr_config_cmake_file} |grep 1` if [ -n "$out" ]; then LIBC_SUPPORT="WASI" diff --git a/wamr-sdk/menuconfig.sh b/wamr-sdk/menuconfig.sh index 85e49f0c..d8499d74 100755 --- a/wamr-sdk/menuconfig.sh +++ b/wamr-sdk/menuconfig.sh @@ -146,104 +146,74 @@ if [ ! -e ".config" ]; then exit 0 fi - -args="" -function args_add_bool() -{ - args="${args} -$1" -} - -function args_add_one() -{ - args="${args} -$1 $2" -} - -function args_add_array() -{ - args="${args} -$1 ${2#,}" -} - -source .config - -profile=`cat .config | grep "^CONFIG_WAMR_SDK_PROFILE"` -profile=${profile#CONFIG_WAMR_SDK_PROFILE=\"} -profile=${profile%*\"} -args_add_one n ${profile} - +# parse platform platform=`cat .config | grep "^CONFIG_PLATFORM"` platform=${platform%*=y} platform=${platform,,} platform=${platform#config_platform_} -if [ -n "${platform}" ]; then - args_add_one p ${platform#config_platform_} -fi +# parse target target=`cat .config | grep "^CONFIG_TARGET"` target=${target%*=y} target=${target#CONFIG_TARGET_} -if [ -n "${target}" ]; then - args_add_one t ${target#CONFIG_TARGET_} -fi - +# parse execution mode modes=`cat .config | grep "^CONFIG_EXEC"` -arg_mode="" +mode_list="" for mode in ${modes} do mode=${mode%*=y} mode=${mode#CONFIG_EXEC_} - arg_mode="${arg_mode},${mode,,}" + mode_list="${mode_list} ${mode,,}" done -if [ -z "${arg_mode}" ]; then +if [ -z "${mode_list}" ]; then echo "execution mode are not selected" exit 1 fi -args_add_array m "${arg_mode}" +# parse libc support libc=`cat .config | grep "^CONFIG_LIBC"` libc=${libc%*=y} if [ "${libc}" = "CONFIG_LIBC_WASI" ]; then - args_add_bool w + libc_support="WASI" +else + libc_support="BUILTIN" fi -app_en=`cat .config | grep "^CONFIG_APP_FRAMEWORK"` -app_en=${app_en%*=y} -app_en=${app_en,,} -if [ -n "${app_en}" ]; then - args_add_bool a +# parse application framework options +app_option=`cat .config | grep "^CONFIG_APP_FRAMEWORK"` +app_option=${app_option%*=y} +app_option=${app_option#CONFIG_APP_FRAMEWORK_} + +if [ "${app_option}" != "DISABLE" ]; then + app_enable="TRUE" + + # Default components + if [ "${app_option}" = "DEFAULT" ]; then + app_list="base connection sensor" + # All components + elif [ "${app_option}" = "ALL" ]; then + app_list="all" + # Customize + elif [ "${app_option}" = "CUSTOM" ]; then + app_option=`cat .config | grep "^CONFIG_APP_BUILD"` + app_list="base" + for app in ${app_option} + do + app=${app%*=y} + app=${app#CONFIG_APP_BUILD_} + app_list="${app_list} ${app,,}" + done + fi fi -apps=`cat .config | grep "^CONFIG_APP_BUILD"` -arg_app="" -for app in ${apps} -do - app=${app%*=y} - app=${app#CONFIG_APP_BUILD_} - arg_app="${arg_app},${app,,}" -done - -if [ -n "${app_en}" ]; then - arg_app="${arg_app},base" - args_add_array l "${arg_app}" -fi - -extra_path=`cat .config | grep "^CONFIG_EXTRA_INCLUDE_PATH"` -if [ -n "${extra_path}" ]; then - extra_path=${extra_path#CONFIG_EXTRA_INCLUDE_PATH=\"} - extra_path=${extra_path%*\"} - args_add_one e ${extra_path} -fi - -args="-g ${args}" - - if [[ -f $wamr_config_cmake_file ]]; then rm $wamr_config_cmake_file fi -set_build_target ${TARGET} -set_build_platform ${PLATFORM} -set_exec_mode "${MODES[*]}" -set_libc_support ${LIBC_SUPPORT} -set_app_module "${APP_LIST[*]}" -set_app_framework ${APP} +set_build_target ${target} +set_build_platform ${platform} +set_exec_mode "${mode_list[*]}" +set_libc_support ${libc_support} +set_app_module "${app_list[*]}" +set_app_framework ${app_enable}