|
|
3 年 前 | |
|---|---|---|
| .. | ||
| Media | 3 年 前 | |
| Script | 3 年 前 | |
| VSCode-Extension | 3 年 前 | |
| WASM-Debug-Server | 3 年 前 | |
| WASM-Toolchain | 3 年 前 | |
| .gitattributes | 3 年 前 | |
| README.md | 3 年 前 | |
The WAMR-IDE is an Integrated Development Environment to develop WebAssembly application with coding, compiling and source debugging support. It contains 3 components: VSCode extension, wasm-toolchain docker image and wasm-debug-server docker image.
VSCode extension is an vscode extension, with which user can build and manage projects, develop wasm application, including building, running and debugging.
WASM-toolchain is a docker image which provides building environment for wasm.
WASM source debug server is a docker image which provides running and source debugging environment for wasm application.
Note: Please ensure that the scripts under resource directories have
execution permission. While on git they have x bits, you might have dropped
them eg. by copying them from Windows.
Similarly, do not drop execution permission when copying lldb binaries
under resource/debug/bin.
VSCode on host.Docker on host.1. [Windows: Docker Desktop](https://docs.docker.com/desktop/windows/install/)
2. [Ubuntu: Docker Engine](https://docs.docker.com/engine/install/ubuntu)
```xml
OS requirements:
To install Docker Engine, you need the 64-bit version of one of these Ubuntu versions:
- Ubuntu Impish 21.10
- Ubuntu Hirsute 21.04
- Ubuntu Focal 20.04(LTS)
- Ubuntu Bionic 18.04(LTS)
```
We have 2 docker images which should be built or loaded on your host, wasm-toolchain and wasm-debug-server. To build these 2 images, please enter the WASM-Debug-Server/Docker & WASM-Toolchain/Docker, then execute the build_docker_image script respectively.
Windows (powershell):
$ cd .\WASM-Toolchain\Docker
$ .\build_docker_image.bat
$ cd .\WASM-Debug-Server\Docker
$ .\build_docker_image.bat
Linux:
$ cd ./WASM-Toolchain/Docker
$ ./build_docker_image.sh
$ cd ./WASM-Debug-Server/Docker
$ ./build_docker_image.sh
wasm-toolchain and wasm-debug-server docker images on your localSometimes building the Docker images may fail due to bad network conditions. If the wasm-toolchain and wasm-debug-server images do not exist after building, please build them manually. Fix the proxy setting if needed and execute the following command to build docker images.
Note: please correctly replace example proxy address with your own before you run manually.
$ cd .\docker_images\wasm-debug-server
$ docker build --no-cache --build-arg http_proxy=http://proxy.example.com:1234
--build-arg https_proxy=http://proxy.example.com:1234 -t wasm-debug-server:1.0 .
$ cd .\docker_images\wasm-toolchain
$ docker build --no-cache --build-arg http_proxy=http://proxy.example.com:1234
--build-arg https_proxy=http://proxy.example.com:1234 -t wasm-toolchain:1.0 .
failed to solve with frontend dockerfile.v0: failed to create LLB definition, please config your docker desktopwasm-toolchain:1.0 and wasm-debug-server:1.0 docker images are both successfully built before using WAMR IDE, otherwise Build, Run and Debug will not work.wamride-1.0.0.vsix can be packaged by npm vsce.
$ npm install -g vsce
$ cd VSCode-Extension
$ rm -rf node_modules
$ npm install
$ vsce package
Note that patched lldb should be built and put into the VSCode-Extension/resource/debug folder before your package or extension debug process if you want to enable source debugging feature.
Please follow this instruction to build lldb.
Please follow this instruction
to copy the binaries.
You can also debug the extension directly follow this instruction without packing the extension.
select wamride-1.0.0.vsix which you have packed on your host.
wamr-ideWAMR-IDE extension contains 2 components as following picture showing. WAMR IDE for workspace and project management and Current Project for project's execution.When you click New project button, the extension will pop up a message box at the bottom right of the screen as following:
You can click Set up now and select the target folder to create project workspace, or you click Maybe later to close the message box.
Note that your selected workspace folder should be empty or the folder you have set up as workspace.
After setting up workspace, extension will prompt successful message:
Workspace has been set up successfully!
Then click New project button again, a new page will show as following.
Enter the Project name and select the Template, then click Create button. A new project will be generated and opened in your current VS Code window or in a new VS Code window.
Opening in current windows or a new one depends on whether your
vscode's exploreris empty or not. If empty, open in current window, or open in the new vscode window.
A new initialized project is as following picture shows.
.wamr is the project configuration folder which contains 3 files, CMakeLists.txt, project.cmake, and compilation_config.json. CMakeLists.txt is used to build wasm target and the project.cmake is included in CMakeLists.txt. compilation_config.json includes the user's customized configuration such as folders which should be added in the include path.
Click Open project button, quick-pick-box will show as following. All projects under your current workspace will be shown and can be selected.
Click Change workspace button, a dialog will show as following. You can select 1 folder in file system as workspace, and the new workspace path will override previous workspace, and all new created projects will be generated in the new workspace.
include paths and exclude source filesExtension supports adding header file folder to `include path` and excluding source file from build.
Add to include path
folder and right click, then menus will be shown as following. Click Toggle state of path including.Exclude source file from build
source file and right click, then menus will be shown as following. Click Toggle state of excluding.#### After setting up include path and exclude files, the corresponding folder and files will be decorated with color and icon as following picture shows.
At the same time, all added include path and exclude files will be saved in .wamr/compilation_config.json as json array.
Toggle state of path includingjust shows when selectingfolderand hides with other resources.
Toggle state of excludingjust shows when selecting[.c | .cpp | .cxx] source filesand hides with other resources.
Click Configuration button, a new page will be shown as following. You can config building target with Include paths, Initial & Max linear memory, stack size, exported_symbols and include paths, exclude files.
Then click Modify button to confirm, if configurations are modified successfully and following message will pop. Click OK, the page will be auto closed.
And all configuration will be saved in .wamr/compilation_config.json.
BuildWhen you have completed coding and ready to build target, click build button and the wasm-toolchain will auto start a container and execute the building process.
After successful building execution, build folder will be generated in explorer, in which ${output_file_name}.wasm is exist.
Note that to start
docker servicefirstly.
Click Run button and wasm-debug-server docker image will auto start a container and execute the running process.
Click Debug button will trigger start ip wamr-debug-server docker image, and boot up lldb debug server inside of iwasm. Then start a debugging session with configuration to connect. Tap F11 or click step into to start debugging.
Docker containers will be auto stopped and removed after the execution.