web: Drop wasm-pack, invoke wasm-bindgen and wasm-opt directly from npm (#2482)
This commit is contained in:
parent
1bbe3c97b3
commit
2858faaaf2
|
@ -82,13 +82,23 @@ jobs:
|
||||||
with:
|
with:
|
||||||
profile: minimal
|
profile: minimal
|
||||||
toolchain: stable
|
toolchain: stable
|
||||||
|
target: wasm32-unknown-unknown
|
||||||
|
|
||||||
- name: Install linux dependencies
|
- name: Install linux dependencies
|
||||||
if: matrix.os == 'ubuntu-latest'
|
if: matrix.os == 'ubuntu-latest'
|
||||||
run: sudo apt-get -y install libasound2-dev libxcb-shape0-dev libxcb-xfixes0-dev
|
run: sudo apt-get -y install libasound2-dev libxcb-shape0-dev libxcb-xfixes0-dev
|
||||||
|
|
||||||
- name: Install wasm-pack
|
- name: Install wasm-bindgen
|
||||||
run: cargo install wasm-pack
|
run: cargo install wasm-bindgen-cli
|
||||||
|
|
||||||
|
- name: Setup conda
|
||||||
|
uses: conda-incubator/setup-miniconda@v2
|
||||||
|
with:
|
||||||
|
activate-environment: binaryen
|
||||||
|
|
||||||
|
- name: Install binaryen
|
||||||
|
shell: bash -l {0}
|
||||||
|
run: conda install -c conda-forge binaryen
|
||||||
|
|
||||||
- name: Setup node
|
- name: Setup node
|
||||||
if: matrix.os == 'ubuntu-latest'
|
if: matrix.os == 'ubuntu-latest'
|
||||||
|
@ -99,6 +109,7 @@ jobs:
|
||||||
- name: Build web
|
- name: Build web
|
||||||
if: matrix.os == 'ubuntu-latest'
|
if: matrix.os == 'ubuntu-latest'
|
||||||
working-directory: web
|
working-directory: web
|
||||||
|
shell: bash -l {0}
|
||||||
run: |
|
run: |
|
||||||
npm run bootstrap
|
npm run bootstrap
|
||||||
npm run build
|
npm run build
|
||||||
|
|
|
@ -33,16 +33,27 @@ jobs:
|
||||||
with:
|
with:
|
||||||
profile: minimal
|
profile: minimal
|
||||||
toolchain: ${{ matrix.rust_version }}
|
toolchain: ${{ matrix.rust_version }}
|
||||||
|
target: wasm32-unknown-unknown
|
||||||
|
|
||||||
- name: Install linux dependencies
|
- name: Install linux dependencies
|
||||||
if: matrix.os == 'ubuntu-latest'
|
if: matrix.os == 'ubuntu-latest'
|
||||||
run: sudo apt-get -y install libasound2-dev libxcb-shape0-dev libxcb-xfixes0-dev
|
run: sudo apt-get -y install libasound2-dev libxcb-shape0-dev libxcb-xfixes0-dev
|
||||||
|
|
||||||
- name: Install wasm-pack
|
- name: Install wasm-bindgen
|
||||||
run: cargo install wasm-pack
|
run: cargo install wasm-bindgen-cli
|
||||||
|
|
||||||
|
- name: Setup conda
|
||||||
|
uses: conda-incubator/setup-miniconda@v2
|
||||||
|
with:
|
||||||
|
activate-environment: binaryen
|
||||||
|
|
||||||
|
- name: Install binaryen
|
||||||
|
shell: bash -l {0}
|
||||||
|
run: conda install -c conda-forge binaryen
|
||||||
|
|
||||||
- name: Build web
|
- name: Build web
|
||||||
working-directory: web
|
working-directory: web
|
||||||
|
shell: bash -l {0}
|
||||||
run: |
|
run: |
|
||||||
npm run bootstrap
|
npm run bootstrap
|
||||||
npm run format:check
|
npm run format:check
|
||||||
|
|
|
@ -5,7 +5,6 @@ dist/
|
||||||
pkg/
|
pkg/
|
||||||
web/packages/core/docs
|
web/packages/core/docs
|
||||||
web/packages/core/tsd
|
web/packages/core/tsd
|
||||||
wasm-pack.log
|
|
||||||
*.swd
|
*.swd
|
||||||
|
|
||||||
# NPM
|
# NPM
|
||||||
|
|
|
@ -56,5 +56,3 @@ features = [
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
wasm-bindgen-test = "0.3.19"
|
wasm-bindgen-test = "0.3.19"
|
||||||
|
|
||||||
[package.metadata.wasm-pack.profile.release]
|
|
||||||
wasm-opt = ['-O', '-g']
|
|
||||||
|
|
|
@ -44,15 +44,29 @@ We do not have a Minimum Supported Rust Version policy. If it fails to build, it
|
||||||
to update to the latest stable version of rust. You may run `rustup update` to do this (if you installed
|
to update to the latest stable version of rust. You may run `rustup update` to do this (if you installed
|
||||||
rust using the above instructions).
|
rust using the above instructions).
|
||||||
|
|
||||||
|
For the compiler to be able to output WebAssembly, an additional target has to be added to it: `rustup target add wasm32-unknown-unknown`
|
||||||
|
|
||||||
#### Node.js
|
#### Node.js
|
||||||
|
|
||||||
Follow the instructions [to install node.js](https://nodejs.org/en/) on your machine.
|
Follow the instructions [to install node.js](https://nodejs.org/en/) on your machine.
|
||||||
|
|
||||||
We recommend using the currently active LTS 12, but we do also run tests with maintenance LTS 10.
|
We recommend using the currently active LTS 12, but we do also run tests with maintenance LTS 10.
|
||||||
|
|
||||||
#### wasm-pack
|
#### wasm-bindgen
|
||||||
|
|
||||||
Follow the instructions [to install wasm-pack](https://rustwasm.github.io/wasm-pack/installer/) on your machine.
|
This can be installed with `cargo install wasm-bindgen-cli`.
|
||||||
|
|
||||||
|
#### Binaryen
|
||||||
|
|
||||||
|
This is optional, used to further optimize the built WebAssembly module.
|
||||||
|
Some ways to install Binaryen:
|
||||||
|
- download one of the [prebuilt releases](https://github.com/WebAssembly/binaryen/releases/)
|
||||||
|
- using your Linux distribution's package manager (`sudo apt install binaryen`, `sudo dnf install binaryen`)
|
||||||
|
- from [Homebrew](https://formulae.brew.sh/formula/binaryen)
|
||||||
|
- from [Anaconda](https://anaconda.org/conda-forge/binaryen)
|
||||||
|
- [compile it yourself](https://github.com/WebAssembly/binaryen#building)
|
||||||
|
|
||||||
|
Just make sure the `wasm-opt` program is in `$PATH`, and that it works.
|
||||||
|
|
||||||
### Building
|
### Building
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,12 @@
|
||||||
"pkg/"
|
"pkg/"
|
||||||
],
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "npm run build:wasm && npm run build:ts",
|
"build": "npm run build:cargo && npm run build:wasm-bindgen && npm run build:wasm-opt && npm run build:ts",
|
||||||
|
"build:cargo": "cargo build --release --target wasm32-unknown-unknown",
|
||||||
|
"build:wasm-bindgen": "wasm-bindgen ../../../target/wasm32-unknown-unknown/release/ruffle_web.wasm --out-dir ./pkg --out-name ruffle_web",
|
||||||
|
"build:wasm-opt": "wasm-opt ./pkg/ruffle_web_bg.wasm -O -g --output ./pkg/ruffle_web_bg.opt.wasm && move-file ./pkg/ruffle_web_bg.opt.wasm ./pkg/ruffle_web_bg.wasm || npm run build:wasm-opt-note",
|
||||||
|
"build:wasm-opt-note": "echo 'NOTE: Since wasm-opt could not be found (or it failed), the resulting module might not perform that well, but it should still work.'",
|
||||||
"build:ts": "tsc -d && node tools/set_version.js",
|
"build:ts": "tsc -d && node tools/set_version.js",
|
||||||
"build:wasm": "wasm-pack build ../../ --out-dir packages/core/pkg",
|
|
||||||
"docs": "typedoc",
|
"docs": "typedoc",
|
||||||
"test": "mocha -r esm -r ts-node/register test/**.ts"
|
"test": "mocha -r esm -r ts-node/register test/**.ts"
|
||||||
},
|
},
|
||||||
|
@ -28,7 +31,8 @@
|
||||||
"replace-in-file": "^6.1.0",
|
"replace-in-file": "^6.1.0",
|
||||||
"ts-node": "^9.0.0",
|
"ts-node": "^9.0.0",
|
||||||
"typedoc": "^0.20.0",
|
"typedoc": "^0.20.0",
|
||||||
"typescript": "^4.0.5"
|
"typescript": "^4.0.5",
|
||||||
|
"move-file-cli": "^2.0.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/source-map": "^0.5.2"
|
"@types/source-map": "^0.5.2"
|
||||||
|
|
Loading…
Reference in New Issue