skia2/modules/canvaskit/Makefile
Kevin Lubick cf1e959c65 [canvaskit] Expand Bazel rules to include Canvas2D compat layer
Importantly, this adds options for encoding using
certain codecs, not just decoding.

Change-Id: I4a610ebf985b67d4545c71b3f3eed4c7807e6a26
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/472277
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Leandro Lovisolo <lovisolo@google.com>
2021-11-17 13:06:35 +00:00

166 lines
6.2 KiB
Makefile

clean:
- rm -rf ../../out/canvaskit_wasm
- rm -rf ./npm_build/bin
- rm -rf ./build/
$(MAKE) release
release:
# Does an incremental build where possible.
./compile.sh
- rm -rf build/
mkdir build
cp ../../out/canvaskit_wasm/canvaskit.js ./build/
cp ../../out/canvaskit_wasm/canvaskit.wasm ./build/
release_cpu:
# Does an incremental build where possible.
./compile.sh cpu_only
- rm -rf build/
mkdir build
cp ../../out/canvaskit_wasm/canvaskit.js ./build/
cp ../../out/canvaskit_wasm/canvaskit.wasm ./build/
release_viewer:
# Does an incremental build where possible.
./compile.sh viewer
- rm -rf build/
mkdir build
cp ../../out/canvaskit_wasm/canvaskit.js ./build/
cp ../../out/canvaskit_wasm/canvaskit.wasm ./build/
debug:
# Does an incremental build where possible.
./compile.sh debug
- rm -rf build/
mkdir build
cp ../../out/canvaskit_wasm_debug/canvaskit.js ./build/
cp ../../out/canvaskit_wasm_debug/canvaskit.wasm ./build/
debug_cpu:
# Does an incremental build where possible.
./compile.sh debug cpu_only
- rm -rf build/
mkdir build
cp ../../out/canvaskit_wasm_debug/canvaskit.js ./build/
cp ../../out/canvaskit_wasm_debug/canvaskit.wasm ./build/
debug_viewer:
# Does an incremental build where possible.
./compile.sh debug viewer
- rm -rf build/
mkdir build
cp ../../out/canvaskit_wasm_debug/canvaskit.js ./build/
cp ../../out/canvaskit_wasm_debug/canvaskit.wasm ./build/
profile:
./compile.sh profiling
- rm -rf build/
mkdir build
cp ../../out/canvaskit_wasm_profile/canvaskit.js ./build/
cp ../../out/canvaskit_wasm_profile/canvaskit.wasm ./build/
npm:
rm -rf ./npm_build/bin
mkdir -p ./npm_build/bin
cp ./CHANGELOG.md ./npm_build/
mkdir -p ./npm_build/bin/full
./compile.sh release
cp ../../out/canvaskit_wasm/canvaskit.js ./npm_build/bin/full
cp ../../out/canvaskit_wasm/canvaskit.wasm ./npm_build/bin/full
# These features are turned off to keep code size smaller for the
# general use case.
./compile.sh release no_skottie no_particles no_rt_shader no_alias_font no_effects_deserialization
cp ../../out/canvaskit_wasm/canvaskit.js ./npm_build/bin
cp ../../out/canvaskit_wasm/canvaskit.wasm ./npm_build/bin
mkdir -p ./npm_build/bin/profiling
./compile.sh profiling
cp ../../out/canvaskit_wasm_profile/canvaskit.js ./npm_build/bin/profiling
cp ../../out/canvaskit_wasm_profile/canvaskit.wasm ./npm_build/bin/profiling
gm_tests_debug:
./compile_gm.sh debug
mkdir -p ./out
cp ../../out/wasm_gm_tests_debug/wasm_gm_tests.js ./out
cp ../../out/wasm_gm_tests_debug/wasm_gm_tests.wasm ./out
gm_tests:
./compile_gm.sh
mkdir -p ./out
cp ../../out/wasm_gm_tests/wasm_gm_tests.js ./out
cp ../../out/wasm_gm_tests/wasm_gm_tests.wasm ./out
local-example:
rm -rf node_modules/canvaskit
mkdir -p node_modules
ln -s ../npm_build node_modules/canvaskit
echo "Go check out http://localhost:8000/npm_build/example.html"
python3 ../../tools/serve_wasm.py
test-continuous:
echo "Assuming npm ci has been run by user"
echo "Also assuming make debug or release has also been run by a user (if needed)"
npx karma start ./karma.conf.js --no-single-run --watch-poll
test-continuous-headless:
npx karma start ./karma.conf.js --no-single-run --watch-poll --headless
node-example:
node ./npm_build/node.example.js --expose-wasm
docker-compile:
mkdir -p ${SKIA_ROOT}/out/canvaskit_wasm_docker
docker run --rm --volume ${SKIA_ROOT}:/SRC \
--volume ${SKIA_ROOT}/out/canvaskit_wasm_docker:/OUT \
gcr.io/skia-public/canvaskit-emsdk:2.0.0_v1 \
/SRC/infra/canvaskit/build_canvaskit.sh
typecheck:
echo "Make sure you've run cd npm_build && npm ci recently"
cd npm_build && npm run dtslint
bazel_gms_release:
# We use spawn_strategy=local for "everyday" builds because emscripten assumes there
# is a cache in the home directory that it needs to fill with compiled versions of libc etc.
# https://emscripten.org/docs/tools_reference/emcc.html
# By setting spawn_strategy=local, we can avoid recompiling all of this for every compilation
# unit, by letting the cache be used (and not dropped from the sandbox), which gets expensive.
# Local testing showed using the local strategy sped up a clean build from 9.5 minutes
# to 1 minute. https://docs.bazel.build/versions/main/user-manual.html#strategy-options
bazelisk build :gm-bindings-wasm --compilation_mode opt --spawn_strategy=local \
--gpu_backend=gl_backend --with_gl_standard=webgl_standard \
--include_decoder=jpeg_decode_codec --include_decoder=png_decode_codec \
--include_decoder=webp_decode_codec --include_decoder=gif_decode_codec
- rm -rf build/
mkdir build
cp ../../bazel-bin/modules/canvaskit/gm-bindings-wasm/gm-bindings.js build/gm-bindings.js
cp ../../bazel-bin/modules/canvaskit/gm-bindings-wasm/gm-bindings.wasm build/gm-bindings.wasm
bazel_gms_debug:
# See above note about spawn_strategy
bazelisk build :gm-bindings-wasm --compilation_mode dbg --spawn_strategy=local \
--gpu_backend=gl_backend --with_gl_standard=webgl_standard \
--include_decoder=jpeg_decode_codec --include_decoder=png_decode_codec \
--include_decoder=webp_decode_codec --include_decoder=gif_decode_codec
- rm -rf build/
mkdir build
cp ../../bazel-bin/modules/canvaskit/gm-bindings-wasm/gm-bindings.js build/gm-bindings.js
cp ../../bazel-bin/modules/canvaskit/gm-bindings-wasm/gm-bindings.wasm build/gm-bindings.wasm
bazel_canvaskit_debug:
# See above note about spawn_strategy
# TODO(kjlubick): Can we use transitions to have defaults set?
# https://github.com/bazelbuild/examples/tree/main/rules/starlark_configurations/cc_binary_selectable_copts
bazelisk build :canvaskit-wasm --compilation_mode dbg --spawn_strategy=local \
--gpu_backend=gl_backend --with_gl_standard=webgl_standard \
--include_decoder=jpeg_decode_codec --include_decoder=png_decode_codec \
--include_decoder=webp_decode_codec --include_decoder=gif_decode_codec \
--include_encoder=jpeg_encode_codec --include_encoder=png_encode_codec \
--include_fontmgr=custom_embedded_fontmgr --fontmgr_factory=custom_embedded_fontmgr_factory
- rm -rf build/
mkdir build
cp ../../bazel-bin/modules/canvaskit/canvaskit-wasm/canvaskit.js build/canvaskit.js
cp ../../bazel-bin/modules/canvaskit/canvaskit-wasm/canvaskit.wasm build/canvaskit.wasm