aboutsummaryrefslogtreecommitdiff
path: root/experimental
diff options
context:
space:
mode:
authorKevin Lubick <kjlubick@google.com>2018-10-09 09:36:35 -0400
committerKevin Lubick <kjlubick@google.com>2018-10-09 13:56:56 +0000
commit8e9750d3c5bd2695d436659ceac83fac463ffaf3 (patch)
treecbc606569666b1d4aa0596f1e8b877de234afbb9 /experimental
parent915b80bf39c858073c955865d54640a7e758ce06 (diff)
downloadskqp-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/Makefile8
-rw-r--r--experimental/canvaskit/canvas-kit/example.html2
-rw-r--r--experimental/canvaskit/canvas-kit/package.json11
-rwxr-xr-xexperimental/canvaskit/compile.sh20
-rw-r--r--experimental/canvaskit/package.json22
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"
+}