Refine wamr-sdk build scripts (#801)

Avoid hardcoding the path of wasi-sdk in wamr_toolchain.cmake,
allow passing -w [wasi-sdk path] to build_sdk.sh,
allow passing OUT_DIR to app-sdk and runtime-sdk,
and optimize message information.
This commit is contained in:
liang.he 2021-10-26 14:20:29 +08:00 committed by GitHub
parent 6b3a939370
commit 1a987ae59b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 34 additions and 19 deletions

View File

@ -12,7 +12,7 @@ endif ()
if (NOT DEFINED CONFIG_PATH)
set (CONFIG_PATH ${CMAKE_CURRENT_LIST_DIR}/../wamr_config_default.cmake)
message(STATUS, "CONFIG_PATH set to ${CONFIG_PATH} ")
message(STATUS "CONFIG_PATH set to ${CONFIG_PATH} ")
endif ()
if (NOT EXISTS "${CONFIG_PATH}")
@ -21,8 +21,9 @@ endif ()
include(${CONFIG_PATH})
set (OUT_DIR "${CMAKE_CURRENT_LIST_DIR}/../out/${WAMR_BUILD_SDK_PROFILE}")
if (NOT DEFINED OUT_DIR)
set (OUT_DIR "${CMAKE_CURRENT_LIST_DIR}/../out/${WAMR_BUILD_SDK_PROFILE}")
endif ()
set (APP_SDK_DIR "${OUT_DIR}/app-sdk")
if (DEFINED EXTRA_SDK_INCLUDE_PATH)

View File

@ -1,13 +1,18 @@
# Copyright (C) 2019 Intel Corporation. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_PROCESSOR wasm32)
SET (CMAKE_SYSTEM_NAME Linux)
SET (CMAKE_SYSTEM_PROCESSOR wasm32)
SET (CMAKE_SYSROOT ${CMAKE_CURRENT_LIST_DIR}/libc-builtin-sysroot)
if (NOT DEFINED WASI_SDK_DIR)
SET (WASI_SDK_DIR "/opt/wasi-sdk")
endif ()
IF (NOT (DEFINED WASI_SDK_DIR OR DEFINED CACHE{WASI_SDK_DIR}))
MESSAGE (FATAL_ERROR "WASI_SDK_DIR is not defined")
ELSE ()
MESSAGE (STATUS "WASI_SDK_DIR=${WASI_SDK_DIR}")
LIST (APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES "WASI_SDK_DIR")
ENDIF ()
SET (CMAKE_C_FLAGS "-nostdlib -z stack-size=4096" CACHE INTERNAL "")
SET (CMAKE_C_COMPILER_TARGET "wasm32")

View File

@ -8,6 +8,7 @@ wamr_root_dir=${sdk_root}/..
out_dir=${sdk_root}/out
profile_path=${out_dir}/profile.cmake
wamr_config_cmake_file=""
wasi_sdk_home="/opt/wasi-sdk"
# libc support, default builtin-libc
LIBC_SUPPORT="BUILTIN"
CM_DEXTRA_SDK_INCLUDE_PATH=""
@ -27,11 +28,12 @@ usage ()
echo " -c, clean"
echo " -d, debug mode"
echo " -i, enter menu config settings"
echo " -w [wasi-sdk installation path] it will be '/opt/wasi-sdk' if not set"
exit 1
}
while getopts "e:x:n:t:icd" opt
while getopts "e:x:n:t:icdw:" opt
do
case $opt in
n)
@ -55,6 +57,11 @@ do
i)
MENUCONFIG="TRUE"
;;
w)
if [[ -n "${OPTARG}" ]]; then
wasi_sdk_home=$(realpath "${OPTARG}")
fi
;;
?)
echo "Unknown arg: $arg"
usage
@ -64,13 +71,11 @@ do
done
if [ ! -f "/opt/wasi-sdk/bin/clang" ]; then
echo "Intall wasi-sdk.." &&
rm -fr wasi-sdk-* /opt/wasi-sdk &&
wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-linux.tar.gz &&
tar -zxf wasi-sdk-12.0-linux.tar.gz &&
mv wasi-sdk-12.0 /opt/wasi-sdk &&
rm -f wasi-sdk-12.0-linux.tar.gz
if [ ! -f "${wasi_sdk_home}/bin/clang" ]; then
echo "Can not find clang under \"${wasi_sdk_home}/bin\"."
exit 1
else
echo "Found WASI_SDK HOME ${wasi_sdk_home}"
fi
@ -191,12 +196,14 @@ if [ "${LIBC_SUPPORT}" = "WASI" ]; then
cmake .. $CM_DEXTRA_SDK_INCLUDE_PATH \
-DWAMR_BUILD_SDK_PROFILE=${PROFILE} \
-DCONFIG_PATH=${wamr_config_cmake_file} \
-DWASI_SDK_DIR="${wasi_sdk_home}" \
-DCMAKE_TOOLCHAIN_FILE=../wasi_toolchain.cmake
else
echo "using builtin libc toolchain"
cmake .. $CM_DEXTRA_SDK_INCLUDE_PATH \
-DWAMR_BUILD_SDK_PROFILE=${PROFILE} \
-DCONFIG_PATH=${wamr_config_cmake_file} \
-DWASI_SDK_DIR="${wasi_sdk_home}" \
-DCMAKE_TOOLCHAIN_FILE=../wamr_toolchain.cmake
fi
[ $? -eq 0 ] || exit $?

View File

@ -24,7 +24,9 @@ endif ()
include(${CONFIG_PATH})
set (OUT_DIR "${CMAKE_CURRENT_LIST_DIR}/../out/${WAMR_BUILD_SDK_PROFILE}")
if (NOT DEFINED OUT_DIR)
set (OUT_DIR "${CMAKE_CURRENT_LIST_DIR}/../out/${WAMR_BUILD_SDK_PROFILE}")
endif ()
set (RUNTIME_SDK_DIR "${OUT_DIR}/runtime-sdk")
include(${CMAKE_CURRENT_LIST_DIR}/../../build-scripts/runtime_lib.cmake)