multiple profile for simple sample

This commit is contained in:
Wang Xin
2020-02-22 14:19:07 +08:00
parent fc96ff2943
commit 90c7580283
9 changed files with 181 additions and 29 deletions

View File

@ -12,25 +12,27 @@ APP_LIB_SRC="${APP_FRAMEWORK_DIR}/base/app/*.c ${APP_FRAMEWORK_DIR}/sensor/app/*
${APP_FRAMEWORK_DIR}/connection/app/*.c ${NATIVE_LIBS}/*.c"
WASM_APPS=${PWD}/wasm-apps
CLEAN=
CM_BUILD_TYPE="-DCMAKE_BUILD_TYPE=Release"
CM_TOOLCHAIN=""
usage ()
{
echo "build.sh [options]"
echo " -p [platform]"
echo " -t [target]"
echo " -p [profile]"
echo " -d [target]"
echo " -c, rebuild SDK"
exit 1
}
while getopts "p:t:ch" opt
while getopts "p:dch" opt
do
case $opt in
p)
PLATFORM=$OPTARG
PROFILE=$OPTARG
;;
t)
TARGET=$OPTARG
d)
CM_BUILD_TYPE="-DCMAKE_BUILD_TYPE=Debug"
;;
c)
CLEAN="TRUE"
@ -48,6 +50,41 @@ do
done
if [ "$CLEAN" = "TRUE" ]; then
rm -rf $CURR_DIR/cmake_build
fi
while [ ! -n "$PROFILE" ]
do
support_profiles=`ls -l "profiles/" |grep '^d' | awk '{print $9}'`
read -p "Enter build target profile (default=host-interp) -->
$support_profiles
\>:" read_platform
if [ ! -n "$read_platform" ]; then
PROFILE="host-interp"
else
PROFILE=$read_platform
fi
done
ARG_TOOLCHAIN=""
TOOL_CHAIN_FILE=$CURR_DIR/profiles/$PROFILE/toolchain.cmake
if [ -f $TOOL_CHAIN_FILE ]; then
CM_TOOLCHAIN="-DCMAKE_TOOLCHAIN_FILE=$TOOL_CHAIN_FILE"
ARG_TOOLCHAIN="-t $TOOL_CHAIN_FILE"
echo "toolchain file: $TOOL_CHAIN_FILE"
fi
SDK_CONFIG_FILE=$CURR_DIR/profiles/$PROFILE/wamr_config_simple.cmake
if [ ! -f $SDK_CONFIG_FILE ]; then
echo "SDK config file [$SDK_CONFIG_FILE] doesn't exit. quit.."
exit 1
fi
rm -rf ${OUT_DIR}
mkdir ${OUT_DIR}
mkdir ${OUT_DIR}/wasm-apps
@ -57,15 +94,21 @@ if [ ! -d "tlsf" ]; then
git clone https://github.com/mattconte/tlsf
fi
PROFILE="simple-$PROFILE"
echo "#####################build wamr sdk"
cd ${WAMR_DIR}/wamr-sdk
./build_sdk.sh -n simple -x ${CURR_DIR}/wamr_config_simple.cmake $*
./build_sdk.sh -n $PROFILE -x $SDK_CONFIG_FILE $ARG_TOOLCHAIN $*
[ $? -eq 0 ] || exit $?
echo "#####################build simple project"
cd ${CURR_DIR}
mkdir -p cmake_build
cd cmake_build
cmake .. -DWAMR_BUILD_SDK_PROFILE=simple
mkdir -p cmake_build/$PROFILE
cd cmake_build/$PROFILE
cmake ../.. -DWAMR_BUILD_SDK_PROFILE=$PROFILE $CM_TOOLCHAIN $CM_BUILD_TYPE
make
if [ $? != 0 ];then
echo "BUILD_FAIL simple exit as $?\n"
@ -79,7 +122,7 @@ echo "#####################build host-tool"
cd ${WAMR_DIR}/test-tools/host-tool
mkdir -p bin
cd bin
cmake ..
cmake .. $CM_TOOLCHAIN $CM_BUILD_TYPE
make
if [ $? != 0 ];then
echo "BUILD_FAIL host tool exit as $?\n"
@ -99,12 +142,12 @@ APP_SRC="$i"
OUT_FILE=${i%.*}.wasm
/opt/wasi-sdk/bin/clang \
-I${WAMR_DIR}/wamr-sdk/out/simple/app-sdk/wamr-app-framework/include \
-L${WAMR_DIR}/wamr-sdk/out/simple/app-sdk/wamr-app-framework/lib \
-I${WAMR_DIR}/wamr-sdk/out/$PROFILE/app-sdk/wamr-app-framework/include \
-L${WAMR_DIR}/wamr-sdk/out/$PROFILE/app-sdk/wamr-app-framework/lib \
-lapp_framework \
--target=wasm32 -O3 -z stack-size=4096 -Wl,--initial-memory=65536 \
--sysroot=${WAMR_DIR}/wamr-sdk/out/simple/app-sdk/libc-builtin-sysroot \
-Wl,--allow-undefined-file=${WAMR_DIR}/wamr-sdk/out/simple/app-sdk/libc-builtin-sysroot/share/defined-symbols.txt \
--sysroot=${WAMR_DIR}/wamr-sdk/out/$PROFILE/app-sdk/libc-builtin-sysroot \
-Wl,--allow-undefined-file=${WAMR_DIR}/wamr-sdk/out/$PROFILE/app-sdk/libc-builtin-sysroot/share/defined-symbols.txt \
-Wl,--no-threads,--strip-all,--no-entry -nostdlib \
-Wl,--export=on_init -Wl,--export=on_destroy \
-Wl,--export=on_request -Wl,--export=on_response \