update menuconfig.sh

This commit is contained in:
Xu Jun 2020-02-21 23:03:58 +08:00
parent ef611452ce
commit ccdba48d30
4 changed files with 74 additions and 103 deletions

View File

@ -5,6 +5,10 @@ set (WASM_APP_GUI_DIR ${CMAKE_CURRENT_LIST_DIR})
set (DEPS_DIR ${WASM_APP_GUI_DIR}/../../../deps) 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} include_directories(${WASM_APP_GUI_DIR}
${DEPS_DIR} ${DEPS_DIR}
${DEPS_DIR}/lvgl ${DEPS_DIR}/lvgl

View File

@ -1,12 +1,5 @@
mainmenu "WebAssembly Micro Runtime Configuration" 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 choice
prompt "select a build target" prompt "select a build target"
@ -64,9 +57,7 @@ choice
endchoice endchoice
choice
choice
prompt "application framework" prompt "application framework"
config APP_FRAMEWORK_DISABLE config APP_FRAMEWORK_DISABLE
bool "Disable app framework" bool "Disable app framework"
@ -77,29 +68,17 @@ choice
bool "Default components" bool "Default components"
help help
Default components 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" bool "customized module config"
menu "modules:" menu "modules:"
depends on APP_BUILD_CUSTOM depends on APP_FRAMEWORK_CUSTOM
source ".wamr_modules" source ".wamr_modules"
endmenu endmenu
endchoice 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

View File

@ -95,7 +95,7 @@ fi
# cmake config file for wamr runtime: # cmake config file for wamr runtime:
# 1. use the users provided the config cmake file path. # 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 # menu_config.cmake in the profile output folder
# 3. If the menu_config.cmake is already in the profile folder, use it # 3. If the menu_config.cmake is already in the profile folder, use it
# 4. Use the default config cmake file # 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}" echo "user given file not exist: ${wamr_config_cmake_file}"
exit 1 exit 1
fi fi
echo "User config file: [${wamr_config_cmake_file}]" echo "User config file: [${wamr_config_cmake_file}]"
else else
wamr_config_cmake_file=${out_dir}/wamr_config_${PROFILE}.cmake 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 if [ -d ${curr_profile_dir} ]; then
rm -rf ${curr_profile_dir} rm -rf ${curr_profile_dir}
fi fi
if [[ "$MENUCONFIG" = "TRUE" ]] || [[ ! -f $wamr_config_cmake_file ]]; then if [[ "$MENUCONFIG" = "TRUE" ]] || [[ ! -f $wamr_config_cmake_file ]]; then
echo "MENUCONFIG: [${wamr_config_cmake_file}]" echo "MENUCONFIG: [${wamr_config_cmake_file}]"
./menuconfig.sh -x ${wamr_config_cmake_file} ./menuconfig.sh -x ${wamr_config_cmake_file}
@ -146,6 +146,24 @@ cd ${sdk_root}/app
rm -fr build && mkdir build rm -fr build && mkdir build
cd 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` out=`grep WAMR_BUILD_LIBC_WASI ${wamr_config_cmake_file} |grep 1`
if [ -n "$out" ]; then if [ -n "$out" ]; then
LIBC_SUPPORT="WASI" LIBC_SUPPORT="WASI"

View File

@ -146,104 +146,74 @@ if [ ! -e ".config" ]; then
exit 0 exit 0
fi fi
# parse platform
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}
platform=`cat .config | grep "^CONFIG_PLATFORM"` platform=`cat .config | grep "^CONFIG_PLATFORM"`
platform=${platform%*=y} platform=${platform%*=y}
platform=${platform,,} platform=${platform,,}
platform=${platform#config_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=`cat .config | grep "^CONFIG_TARGET"`
target=${target%*=y} target=${target%*=y}
target=${target#CONFIG_TARGET_} 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"` modes=`cat .config | grep "^CONFIG_EXEC"`
arg_mode="" mode_list=""
for mode in ${modes} for mode in ${modes}
do do
mode=${mode%*=y} mode=${mode%*=y}
mode=${mode#CONFIG_EXEC_} mode=${mode#CONFIG_EXEC_}
arg_mode="${arg_mode},${mode,,}" mode_list="${mode_list} ${mode,,}"
done done
if [ -z "${arg_mode}" ]; then if [ -z "${mode_list}" ]; then
echo "execution mode are not selected" echo "execution mode are not selected"
exit 1 exit 1
fi fi
args_add_array m "${arg_mode}"
# parse libc support
libc=`cat .config | grep "^CONFIG_LIBC"` libc=`cat .config | grep "^CONFIG_LIBC"`
libc=${libc%*=y} libc=${libc%*=y}
if [ "${libc}" = "CONFIG_LIBC_WASI" ]; then if [ "${libc}" = "CONFIG_LIBC_WASI" ]; then
args_add_bool w libc_support="WASI"
else
libc_support="BUILTIN"
fi fi
app_en=`cat .config | grep "^CONFIG_APP_FRAMEWORK"` # parse application framework options
app_en=${app_en%*=y} app_option=`cat .config | grep "^CONFIG_APP_FRAMEWORK"`
app_en=${app_en,,} app_option=${app_option%*=y}
if [ -n "${app_en}" ]; then app_option=${app_option#CONFIG_APP_FRAMEWORK_}
args_add_bool a
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 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 if [[ -f $wamr_config_cmake_file ]]; then
rm $wamr_config_cmake_file rm $wamr_config_cmake_file
fi fi
set_build_target ${TARGET} set_build_target ${target}
set_build_platform ${PLATFORM} set_build_platform ${platform}
set_exec_mode "${MODES[*]}" set_exec_mode "${mode_list[*]}"
set_libc_support ${LIBC_SUPPORT} set_libc_support ${libc_support}
set_app_module "${APP_LIST[*]}" set_app_module "${app_list[*]}"
set_app_framework ${APP} set_app_framework ${app_enable}