mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-02-06 06:55:07 +00:00
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:
parent
6b3a939370
commit
1a987ae59b
|
@ -12,7 +12,7 @@ endif ()
|
||||||
|
|
||||||
if (NOT DEFINED CONFIG_PATH)
|
if (NOT DEFINED CONFIG_PATH)
|
||||||
set (CONFIG_PATH ${CMAKE_CURRENT_LIST_DIR}/../wamr_config_default.cmake)
|
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 ()
|
endif ()
|
||||||
|
|
||||||
if (NOT EXISTS "${CONFIG_PATH}")
|
if (NOT EXISTS "${CONFIG_PATH}")
|
||||||
|
@ -21,8 +21,9 @@ endif ()
|
||||||
|
|
||||||
include(${CONFIG_PATH})
|
include(${CONFIG_PATH})
|
||||||
|
|
||||||
|
if (NOT DEFINED OUT_DIR)
|
||||||
set (OUT_DIR "${CMAKE_CURRENT_LIST_DIR}/../out/${WAMR_BUILD_SDK_PROFILE}")
|
set (OUT_DIR "${CMAKE_CURRENT_LIST_DIR}/../out/${WAMR_BUILD_SDK_PROFILE}")
|
||||||
|
endif ()
|
||||||
set (APP_SDK_DIR "${OUT_DIR}/app-sdk")
|
set (APP_SDK_DIR "${OUT_DIR}/app-sdk")
|
||||||
|
|
||||||
if (DEFINED EXTRA_SDK_INCLUDE_PATH)
|
if (DEFINED EXTRA_SDK_INCLUDE_PATH)
|
||||||
|
|
|
@ -1,13 +1,18 @@
|
||||||
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||||
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
|
||||||
SET(CMAKE_SYSTEM_NAME Linux)
|
SET (CMAKE_SYSTEM_NAME Linux)
|
||||||
SET(CMAKE_SYSTEM_PROCESSOR wasm32)
|
SET (CMAKE_SYSTEM_PROCESSOR wasm32)
|
||||||
SET (CMAKE_SYSROOT ${CMAKE_CURRENT_LIST_DIR}/libc-builtin-sysroot)
|
SET (CMAKE_SYSROOT ${CMAKE_CURRENT_LIST_DIR}/libc-builtin-sysroot)
|
||||||
|
|
||||||
|
|
||||||
|
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 ()
|
||||||
|
|
||||||
if (NOT DEFINED WASI_SDK_DIR)
|
|
||||||
SET (WASI_SDK_DIR "/opt/wasi-sdk")
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
SET (CMAKE_C_FLAGS "-nostdlib -z stack-size=4096" CACHE INTERNAL "")
|
SET (CMAKE_C_FLAGS "-nostdlib -z stack-size=4096" CACHE INTERNAL "")
|
||||||
SET (CMAKE_C_COMPILER_TARGET "wasm32")
|
SET (CMAKE_C_COMPILER_TARGET "wasm32")
|
||||||
|
@ -26,4 +31,4 @@ SET (CMAKE_NM "${WASI_SDK_DIR}/bin/llvm-nm" CACHE INTER
|
||||||
SET (CMAKE_OBJDUMP "${WASI_SDK_DIR}/bin/llvm-dwarfdump" CACHE INTERNAL "")
|
SET (CMAKE_OBJDUMP "${WASI_SDK_DIR}/bin/llvm-dwarfdump" CACHE INTERNAL "")
|
||||||
SET (CMAKE_RANLIB "${WASI_SDK_DIR}/bin/llvm-ranlib" CACHE INTERNAL "")
|
SET (CMAKE_RANLIB "${WASI_SDK_DIR}/bin/llvm-ranlib" CACHE INTERNAL "")
|
||||||
SET (CMAKE_EXE_LINKER_FLAGS
|
SET (CMAKE_EXE_LINKER_FLAGS
|
||||||
"${CMAKE_EXE_LINKER_FLAGS},--allow-undefined-file=${CMAKE_SYSROOT}/share/defined-symbols.txt" CACHE INTERNAL "")
|
"${CMAKE_EXE_LINKER_FLAGS},--allow-undefined-file=${CMAKE_SYSROOT}/share/defined-symbols.txt" CACHE INTERNAL "")
|
|
@ -8,6 +8,7 @@ wamr_root_dir=${sdk_root}/..
|
||||||
out_dir=${sdk_root}/out
|
out_dir=${sdk_root}/out
|
||||||
profile_path=${out_dir}/profile.cmake
|
profile_path=${out_dir}/profile.cmake
|
||||||
wamr_config_cmake_file=""
|
wamr_config_cmake_file=""
|
||||||
|
wasi_sdk_home="/opt/wasi-sdk"
|
||||||
# libc support, default builtin-libc
|
# libc support, default builtin-libc
|
||||||
LIBC_SUPPORT="BUILTIN"
|
LIBC_SUPPORT="BUILTIN"
|
||||||
CM_DEXTRA_SDK_INCLUDE_PATH=""
|
CM_DEXTRA_SDK_INCLUDE_PATH=""
|
||||||
|
@ -27,11 +28,12 @@ usage ()
|
||||||
echo " -c, clean"
|
echo " -c, clean"
|
||||||
echo " -d, debug mode"
|
echo " -d, debug mode"
|
||||||
echo " -i, enter menu config settings"
|
echo " -i, enter menu config settings"
|
||||||
|
echo " -w [wasi-sdk installation path] it will be '/opt/wasi-sdk' if not set"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
while getopts "e:x:n:t:icd" opt
|
while getopts "e:x:n:t:icdw:" opt
|
||||||
do
|
do
|
||||||
case $opt in
|
case $opt in
|
||||||
n)
|
n)
|
||||||
|
@ -55,6 +57,11 @@ do
|
||||||
i)
|
i)
|
||||||
MENUCONFIG="TRUE"
|
MENUCONFIG="TRUE"
|
||||||
;;
|
;;
|
||||||
|
w)
|
||||||
|
if [[ -n "${OPTARG}" ]]; then
|
||||||
|
wasi_sdk_home=$(realpath "${OPTARG}")
|
||||||
|
fi
|
||||||
|
;;
|
||||||
?)
|
?)
|
||||||
echo "Unknown arg: $arg"
|
echo "Unknown arg: $arg"
|
||||||
usage
|
usage
|
||||||
|
@ -64,13 +71,11 @@ do
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
if [ ! -f "/opt/wasi-sdk/bin/clang" ]; then
|
if [ ! -f "${wasi_sdk_home}/bin/clang" ]; then
|
||||||
echo "Intall wasi-sdk.." &&
|
echo "Can not find clang under \"${wasi_sdk_home}/bin\"."
|
||||||
rm -fr wasi-sdk-* /opt/wasi-sdk &&
|
exit 1
|
||||||
wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-12/wasi-sdk-12.0-linux.tar.gz &&
|
else
|
||||||
tar -zxf wasi-sdk-12.0-linux.tar.gz &&
|
echo "Found WASI_SDK HOME ${wasi_sdk_home}"
|
||||||
mv wasi-sdk-12.0 /opt/wasi-sdk &&
|
|
||||||
rm -f wasi-sdk-12.0-linux.tar.gz
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
@ -191,12 +196,14 @@ if [ "${LIBC_SUPPORT}" = "WASI" ]; then
|
||||||
cmake .. $CM_DEXTRA_SDK_INCLUDE_PATH \
|
cmake .. $CM_DEXTRA_SDK_INCLUDE_PATH \
|
||||||
-DWAMR_BUILD_SDK_PROFILE=${PROFILE} \
|
-DWAMR_BUILD_SDK_PROFILE=${PROFILE} \
|
||||||
-DCONFIG_PATH=${wamr_config_cmake_file} \
|
-DCONFIG_PATH=${wamr_config_cmake_file} \
|
||||||
|
-DWASI_SDK_DIR="${wasi_sdk_home}" \
|
||||||
-DCMAKE_TOOLCHAIN_FILE=../wasi_toolchain.cmake
|
-DCMAKE_TOOLCHAIN_FILE=../wasi_toolchain.cmake
|
||||||
else
|
else
|
||||||
echo "using builtin libc toolchain"
|
echo "using builtin libc toolchain"
|
||||||
cmake .. $CM_DEXTRA_SDK_INCLUDE_PATH \
|
cmake .. $CM_DEXTRA_SDK_INCLUDE_PATH \
|
||||||
-DWAMR_BUILD_SDK_PROFILE=${PROFILE} \
|
-DWAMR_BUILD_SDK_PROFILE=${PROFILE} \
|
||||||
-DCONFIG_PATH=${wamr_config_cmake_file} \
|
-DCONFIG_PATH=${wamr_config_cmake_file} \
|
||||||
|
-DWASI_SDK_DIR="${wasi_sdk_home}" \
|
||||||
-DCMAKE_TOOLCHAIN_FILE=../wamr_toolchain.cmake
|
-DCMAKE_TOOLCHAIN_FILE=../wamr_toolchain.cmake
|
||||||
fi
|
fi
|
||||||
[ $? -eq 0 ] || exit $?
|
[ $? -eq 0 ] || exit $?
|
||||||
|
|
|
@ -24,7 +24,9 @@ endif ()
|
||||||
|
|
||||||
include(${CONFIG_PATH})
|
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")
|
set (RUNTIME_SDK_DIR "${OUT_DIR}/runtime-sdk")
|
||||||
|
|
||||||
include(${CMAKE_CURRENT_LIST_DIR}/../../build-scripts/runtime_lib.cmake)
|
include(${CMAKE_CURRENT_LIST_DIR}/../../build-scripts/runtime_lib.cmake)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user