Skip to content

Commit 897e005

Browse files
committed
Add emscripten CI
1 parent eb2a7eb commit 897e005

File tree

5 files changed

+30
-21
lines changed

5 files changed

+30
-21
lines changed

.travis.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@ env:
1212

1313
matrix:
1414
include:
15+
# emscripten
16+
- env: TARGET=asmjs-unknown-emscripten DISABLE_TESTS=1
17+
rust: nightly
18+
- env: TARGET=wasm32-unknown-emscripten DISABLE_TESTS=1
19+
rust: nightly
20+
1521
# Linux
1622
- env: TARGET=i686-unknown-linux-gnu
1723
- env: TARGET=i686-unknown-linux-musl
@@ -98,7 +104,7 @@ deploy:
98104
file_glob: true
99105
file: $CRATE_NAME-$TRAVIS_TAG-$TARGET.*
100106
on:
101-
condition: $TRAVIS_RUST_VERSION = stable
107+
condition: $TRAVIS_RUST_VERSION == 'stable' || $TARGET = 'asmjs-unknown-emscripten' || $TARGET == 'wasm32-unknown-emscripten'
102108
tags: true
103109
provider: releases
104110
skip_cleanup: true

ci/before_deploy.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,14 @@ main() {
2525
case $TRAVIS_OS_NAME in
2626
linux)
2727
cp target/$TARGET/release/liblivesplit_core_capi.so $stage/liblivesplit_core.so 2>/dev/null || :
28+
cp target/$TARGET/release/livesplit*.js* $stage/. 2>/dev/null || :
29+
cp target/$TARGET/release/deps/*.wasm $stage/livesplit.wasm 2>/dev/null || :
2830
;;
2931
osx)
3032
cp target/$TARGET/release/liblivesplit_core_capi.dylib $stage/liblivesplit_core.dylib 2>/dev/null || :
3133
;;
3234
esac
33-
cp target/$TARGET/release/liblivesplit_core_capi.a $stage/liblivesplit_core.a
35+
cp target/$TARGET/release/liblivesplit_core_capi.a $stage/liblivesplit_core.a 2>/dev/null || :
3436

3537
cd $stage
3638
tar czf $src/$CRATE_NAME-$TRAVIS_TAG-$TARGET.tar.gz *

ci/script.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,19 @@
33
set -ex
44

55
main() {
6+
case $TARGET in
7+
asmjs-unknown-emscripten)
8+
cross build -p livesplit --target $TARGET --release
9+
return
10+
;;
11+
wasm32-unknown-emscripten)
12+
rm target/wasm32-unknown-emscripten/release/deps/*.wasm 2>/dev/null || :
13+
rm target/wasm32-unknown-emscripten/release/deps/*.js 2>/dev/null || :
14+
cross build -p livesplit --target $TARGET --release
15+
return
16+
;;
17+
esac
18+
619
cross build -p livesplit-core-capi --target $TARGET
720
cross build -p livesplit-core-capi --target $TARGET --release
821

js/Makefile

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,16 @@
1-
standard_flags = -s MODULARIZE=1 -s EXPORT_NAME='LiveSplitCore' -s TOTAL_MEMORY=33554432 -s ALLOW_MEMORY_GROWTH=1
2-
debug_flags = $(standard_flags) -s ASSERTIONS=1
3-
release_flags = $(standard_flags)
4-
51
asmjs:
6-
@cargo rustc --release --target asmjs-unknown-emscripten -- -C link-args="$(release_flags)"
7-
@cp ../target/asmjs-unknown-emscripten/release/livesplit*.js* .
8-
9-
optimized:
10-
@cargo rustc --release --target asmjs-unknown-emscripten -- -C link-args="$(release_flags)"
11-
@cp ../target/asmjs-unknown-emscripten/release/livesplit*.js* .
12-
13-
small:
14-
@cargo rustc --release --target asmjs-unknown-emscripten -- -C debuginfo=0 -C panic=abort -C opt-level=s -C lto -C link-args="-Os $(release_flags)"
15-
@cp ../target/asmjs-unknown-emscripten/release/livesplit*.js* .
16-
17-
supersmall:
18-
@cargo rustc --release --target asmjs-unknown-emscripten -- -C debuginfo=0 -C panic=abort -C opt-level=z -C lto -C link-args="-Oz $(release_flags)"
2+
@cargo build --release --target asmjs-unknown-emscripten
193
@cp ../target/asmjs-unknown-emscripten/release/livesplit*.js* .
204

215
wasm:
226
@-rm ../target/wasm32-unknown-emscripten/release/deps/*.wasm
237
@-rm ../target/wasm32-unknown-emscripten/release/deps/*.js
24-
@cargo rustc --release --target wasm32-unknown-emscripten -- -C link-args="$(release_flags) -s BINARYEN_METHOD='native-wasm'"
8+
@cargo build --release --target wasm32-unknown-emscripten
259
@cp ../target/wasm32-unknown-emscripten/release/livesplit*.js* .
2610
@cp ../target/wasm32-unknown-emscripten/release/deps/*.wasm livesplit.wasm
2711

2812
debug:
29-
@cargo rustc --target asmjs-unknown-emscripten -- -C link-args="$(debug_flags)"
13+
@cargo build --target asmjs-unknown-emscripten
3014
@cp ../target/asmjs-unknown-emscripten/debug/livesplit*.js* .
3115

3216
bindings:

js/src/main.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
#![feature(link_args)]
12
#![no_main]
23

4+
#[link_args = "-Oz -s MODULARIZE=1 -s EXPORT_NAME='LiveSplitCore' -s TOTAL_MEMORY=33554432 -s ALLOW_MEMORY_GROWTH=1 -s BINARYEN_METHOD='native-wasm'"]
5+
extern "C" {}
6+
37
extern crate livesplit_core_capi;

0 commit comments

Comments
 (0)