Implement WAMR-IDE with vscode extension (#943)

Implement WAMR-IDE with vscode extension to enable developing
WebAssembly applications with coding, building, running and
debugging support. Support both Linux and Windows, and only
support putting all the tools in a docker image, e.g. wasi-sdk, wamrc,
iwasm and so on.

Co-authored-by: Wang Ning <justdoitwn@163.com>
This commit is contained in:
Wenyong Huang
2022-01-25 10:10:12 +08:00
committed by GitHub
parent 90a0057d33
commit d925369a1f
66 changed files with 2769 additions and 0 deletions

View File

@ -0,0 +1,32 @@
# Copyright (C) 2019 Intel Corporation. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
FROM gcc:9.3.0 AS BASE
## set work directory
WORKDIR /root/
COPY resource /root/
## - download cmake with wget and set up
RUN wget https://github.com/Kitware/CMake/releases/download/v3.21.1/cmake-3.21.1-linux-x86_64.tar.gz \
&& tar -zxvf cmake-3.21.1-linux-x86_64.tar.gz \
&& rm -f cmake-3.21.1-linux-x86_64.tar.gz \
&& mv cmake-3.21.1-linux-x86_64 /opt/cmake \
&& ln -s /opt/cmake/bin/cmake /bin/cmake \
&& apt-get install make
## -clone wamr-repo and build iwasm
RUN git clone -b main --depth=1 https://github.com/bytecodealliance/wasm-micro-runtime.git \
&& cd /root/wasm-micro-runtime/product-mini/platforms/linux \
&& mkdir build && cd build \
&& cmake .. -DWAMR_BUILD_DEBUG_INTERP=1 && make \
&& cp /root/wasm-micro-runtime/product-mini/platforms/linux/build/iwasm /root/iwasm \
&& rm -fr /root/wasm-micro-runtime
FROM ubuntu:20.04
# COPY files from BASE image
COPY --from=BASE /root/iwasm /root
COPY --from=BASE /root/debug.sh /root
COPY --from=BASE /root/run.sh /root
WORKDIR /root/

View File

@ -0,0 +1,15 @@
### Build Docker Image
- execute `build_docker_image.bat` on `Windows`
- execute `build_docker_image.sh` on `Linux`
```shell
chmod +x resource/*
./build_docker_image.sh
```
### Resource Details
- `Dockerflie` is the source file to build `wasm-debug-server` docker image
- `resource/debug.sh` is the script to execute the `/mnt/build/${target}.wasm` in debug mode, will start up the debugger server inside of the `iwasm` and hold to wait for connecting.
- `resource/run.sh` is the script to execute the `/mnt/build/${target}.wasm` directly.

View File

@ -0,0 +1,8 @@
@REM Copyright (C) 2019 Intel Corporation. All rights reserved.
@REM SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
@echo off
docker build -t wasm-debug-server:1.0 .
@REM delete intermediate docker image
sudo docker image prune -f

View File

@ -0,0 +1,8 @@
# Copyright (C) 2019 Intel Corporation. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#!/bin/bash
docker build -t wasm-debug-server:1.0 .
# delete intermediate docker image
sudo docker image prune -f

View File

@ -0,0 +1,6 @@
# Copyright (C) 2019 Intel Corporation. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#!/bin/bash
TARGET=$1
./iwasm -g=0.0.0.0:1234 /mnt/build/${TARGET}.wasm

View File

@ -0,0 +1,6 @@
# Copyright (C) 2019 Intel Corporation. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#!/bin/bash
TARGET=$1
./iwasm /mnt/build/${TARGET}.wasm