diff options
author | Kevin Lubick <kjlubick@google.com> | 2018-10-09 09:36:35 -0400 |
---|---|---|
committer | Kevin Lubick <kjlubick@google.com> | 2018-10-09 13:56:56 +0000 |
commit | 8e9750d3c5bd2695d436659ceac83fac463ffaf3 (patch) | |
tree | cbc606569666b1d4aa0596f1e8b877de234afbb9 /experimental | |
parent | 915b80bf39c858073c955865d54640a7e758ce06 (diff) | |
download | skqp-8e9750d3c5bd2695d436659ceac83fac463ffaf3.tar.gz |
Add CanvasKit build
Building CanvasKit uses very similar logic to PathKit, so there
was a fair amount of copy/paste/customize.
Fixes the name of skia.js/wasm -> canvaskit.js/wasm and
adds a package.json to formally track versions.
Also move PathKit helper scripts to align better.
Docs-Preview: https://skia.org/?cl=160463
Bug: skia:
Change-Id: Ie75b30592dcc4d520dca41f6f5579006aaa8849b
Reviewed-on: https://skia-review.googlesource.com/c/160463
Reviewed-by: Eric Boren <borenet@google.com>
Diffstat (limited to 'experimental')
-rw-r--r-- | experimental/canvaskit/Makefile | 8 | ||||
-rw-r--r-- | experimental/canvaskit/canvas-kit/example.html | 2 | ||||
-rw-r--r-- | experimental/canvaskit/canvas-kit/package.json | 11 | ||||
-rwxr-xr-x | experimental/canvaskit/compile.sh | 20 | ||||
-rw-r--r-- | experimental/canvaskit/package.json | 22 |
5 files changed, 52 insertions, 11 deletions
diff --git a/experimental/canvaskit/Makefile b/experimental/canvaskit/Makefile index dc76224f5a..65764fb8ef 100644 --- a/experimental/canvaskit/Makefile +++ b/experimental/canvaskit/Makefile @@ -7,15 +7,15 @@ release: # Does an incremental build where possible. ./compile.sh mkdir -p ./canvas-kit/bin - cp ../../out/canvaskit_wasm/skia.js ./canvas-kit/bin - cp ../../out/canvaskit_wasm/skia.wasm ./canvas-kit/bin + cp ../../out/canvaskit_wasm/canvaskit.js ./canvas-kit/bin + cp ../../out/canvaskit_wasm/canvaskit.wasm ./canvas-kit/bin debug: # Does an incremental build where possible. ./compile.sh debug mkdir -p ./canvas-kit/bin - cp ../../out/canvaskit_wasm/skia.js ./canvas-kit/bin - cp ../../out/canvaskit_wasm/skia.wasm ./canvas-kit/bin + cp ../../out/canvaskit_wasm/canvaskit.js ./canvas-kit/bin + cp ../../out/canvaskit_wasm/canvaskit.wasm ./canvas-kit/bin local-example: rm -rf node_modules/canvas-kit diff --git a/experimental/canvaskit/canvas-kit/example.html b/experimental/canvaskit/canvas-kit/example.html index 85aeaa7f8c..8b2fb51fad 100644 --- a/experimental/canvaskit/canvas-kit/example.html +++ b/experimental/canvaskit/canvas-kit/example.html @@ -30,7 +30,7 @@ <!-- Doesn't work yet. --> <button id=lego_btn>Take a picture of the legos</button> -<script type="text/javascript" src="/node_modules/canvas-kit/bin/skia.js"></script> +<script type="text/javascript" src="/node_modules/canvas-kit/bin/canvaskit.js"></script> <script type="text/javascript" charset="utf-8"> diff --git a/experimental/canvaskit/canvas-kit/package.json b/experimental/canvaskit/canvas-kit/package.json new file mode 100644 index 0000000000..76dd8e9922 --- /dev/null +++ b/experimental/canvaskit/canvas-kit/package.json @@ -0,0 +1,11 @@ +{ + "name": "canvaskit-wasm", + "version": "0.1.0", + "description": "A WASM version of Skia's Canvas API", + "main": "bin/canvaskit.js", + "homepage": "https://github.com/google/skia/tree/master/experimental/canvaskit", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "license": "Apache-2.0" +} diff --git a/experimental/canvaskit/compile.sh b/experimental/canvaskit/compile.sh index 7dabb10374..f309e2021e 100755 --- a/experimental/canvaskit/compile.sh +++ b/experimental/canvaskit/compile.sh @@ -14,11 +14,13 @@ if [[ ! -d $EMSDK ]]; then fi BUILD_DIR=${BUILD_DIR:="out/canvaskit_wasm"} - +mkdir -p $BUILD_DIR # Navigate to SKIA_HOME from where this file is located. pushd $BASE_DIR/../.. source $EMSDK/emsdk_env.sh +EMCC=`which emcc` +EMCXX=`which em++` RELEASE_CONF="-Oz --closure 1 --llvm-lto 3 -DSK_RELEASE" EXTRA_CFLAGS="\"-DSK_RELEASE\"" @@ -28,12 +30,18 @@ if [[ $@ == *debug* ]]; then RELEASE_CONF="-O0 --js-opts 0 -s SAFE_HEAP=1 -s ASSERTIONS=1 -g3 -DPATHKIT_TESTING -DSK_DEBUG" fi +# Turn off exiting while we check for ninja (which may not be on PATH) +set +e +NINJA=`which ninja` +if [[ -z $NINJA ]]; then + git clone "https://chromium.googlesource.com/chromium/tools/depot_tools.git" --depth 1 $BUILD_DIR/depot_tools + NINJA=$BUILD_DIR/depot_tools/ninja +fi +# Re-enable error checking +set -e echo "Compiling bitcode" -EMCC=`which emcc` -EMCXX=`which em++` - # Inspired by https://github.com/Zubnix/skia-wasm-port/blob/master/build_bindings.sh ./bin/gn gen ${BUILD_DIR} \ --args="cc=\"${EMCC}\" \ @@ -68,7 +76,7 @@ EMCXX=`which em++` skia_enable_fontmgr_empty=false \ skia_enable_pdf=false" -ninja -C ${BUILD_DIR} libskia.a +${NINJA} -C ${BUILD_DIR} libskia.a export EMCC_CLOSURE_ARGS="--externs $BASE_DIR/externs.js " @@ -132,4 +140,4 @@ ${EMCC} \ -s USE_FREETYPE=1 \ -s USE_LIBPNG=1 \ -s WASM=1 \ - -o $BUILD_DIR/skia.js + -o $BUILD_DIR/canvaskit.js diff --git a/experimental/canvaskit/package.json b/experimental/canvaskit/package.json new file mode 100644 index 0000000000..9986143406 --- /dev/null +++ b/experimental/canvaskit/package.json @@ -0,0 +1,22 @@ +{ + "name": "canvaskit-local", + "version": "0.0.0", + "description": "private", + "private": true, + "main": "index.js", + "dependencies": { + }, + "devDependencies": { + "is-docker": "^1.1.0", + "jasmine-core": "^3.1.0", + "karma": "^2.0.5", + "karma-chrome-launcher": "^2.2.0", + "karma-jasmine": "^1.1.2", + "requirejs": "^2.3.5" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC" +} |