1cb93a386Sopenharmony_ciclean:
2cb93a386Sopenharmony_ci	- rm -rf ../../out/canvaskit_wasm
3cb93a386Sopenharmony_ci	- rm -rf ./npm_build/bin
4cb93a386Sopenharmony_ci	- rm -rf ./build/
5cb93a386Sopenharmony_ci	$(MAKE) release
6cb93a386Sopenharmony_ci
7cb93a386Sopenharmony_cirelease:
8cb93a386Sopenharmony_ci	# Does an incremental build where possible.
9cb93a386Sopenharmony_ci	./compile.sh
10cb93a386Sopenharmony_ci	- rm -rf build/
11cb93a386Sopenharmony_ci	mkdir build
12cb93a386Sopenharmony_ci	cp ../../out/canvaskit_wasm/canvaskit.js   ./build/
13cb93a386Sopenharmony_ci	cp ../../out/canvaskit_wasm/canvaskit.wasm ./build/
14cb93a386Sopenharmony_ci
15cb93a386Sopenharmony_cirelease_cpu:
16cb93a386Sopenharmony_ci	# Does an incremental build where possible.
17cb93a386Sopenharmony_ci	./compile.sh cpu_only
18cb93a386Sopenharmony_ci	- rm -rf build/
19cb93a386Sopenharmony_ci	mkdir build
20cb93a386Sopenharmony_ci	cp ../../out/canvaskit_wasm/canvaskit.js   ./build/
21cb93a386Sopenharmony_ci	cp ../../out/canvaskit_wasm/canvaskit.wasm ./build/
22cb93a386Sopenharmony_ci
23cb93a386Sopenharmony_cirelease_viewer:
24cb93a386Sopenharmony_ci	# Does an incremental build where possible.
25cb93a386Sopenharmony_ci	./compile.sh viewer
26cb93a386Sopenharmony_ci	- rm -rf build/
27cb93a386Sopenharmony_ci	mkdir build
28cb93a386Sopenharmony_ci	cp ../../out/canvaskit_wasm/canvaskit.js   ./build/
29cb93a386Sopenharmony_ci	cp ../../out/canvaskit_wasm/canvaskit.wasm ./build/
30cb93a386Sopenharmony_ci
31cb93a386Sopenharmony_cidebug:
32cb93a386Sopenharmony_ci	# Does an incremental build where possible.
33cb93a386Sopenharmony_ci	./compile.sh debug
34cb93a386Sopenharmony_ci	- rm -rf build/
35cb93a386Sopenharmony_ci	mkdir build
36cb93a386Sopenharmony_ci	cp ../../out/canvaskit_wasm_debug/canvaskit.js   ./build/
37cb93a386Sopenharmony_ci	cp ../../out/canvaskit_wasm_debug/canvaskit.wasm ./build/
38cb93a386Sopenharmony_ci
39cb93a386Sopenharmony_cidebug_cpu:
40cb93a386Sopenharmony_ci	# Does an incremental build where possible.
41cb93a386Sopenharmony_ci	./compile.sh debug cpu_only
42cb93a386Sopenharmony_ci	- rm -rf build/
43cb93a386Sopenharmony_ci	mkdir build
44cb93a386Sopenharmony_ci	cp ../../out/canvaskit_wasm_debug/canvaskit.js   ./build/
45cb93a386Sopenharmony_ci	cp ../../out/canvaskit_wasm_debug/canvaskit.wasm ./build/
46cb93a386Sopenharmony_ci
47cb93a386Sopenharmony_cidebug_viewer:
48cb93a386Sopenharmony_ci	# Does an incremental build where possible.
49cb93a386Sopenharmony_ci	./compile.sh debug viewer
50cb93a386Sopenharmony_ci	- rm -rf build/
51cb93a386Sopenharmony_ci	mkdir build
52cb93a386Sopenharmony_ci	cp ../../out/canvaskit_wasm_debug/canvaskit.js   ./build/
53cb93a386Sopenharmony_ci	cp ../../out/canvaskit_wasm_debug/canvaskit.wasm ./build/
54cb93a386Sopenharmony_ci
55cb93a386Sopenharmony_ciprofile:
56cb93a386Sopenharmony_ci	./compile.sh profiling
57cb93a386Sopenharmony_ci	- rm -rf build/
58cb93a386Sopenharmony_ci	mkdir build
59cb93a386Sopenharmony_ci	cp ../../out/canvaskit_wasm_profile/canvaskit.js   ./build/
60cb93a386Sopenharmony_ci	cp ../../out/canvaskit_wasm_profile/canvaskit.wasm ./build/
61cb93a386Sopenharmony_ci
62cb93a386Sopenharmony_cinpm:
63cb93a386Sopenharmony_ci	rm -rf ./npm_build/bin
64cb93a386Sopenharmony_ci	mkdir -p ./npm_build/bin
65cb93a386Sopenharmony_ci	cp ./CHANGELOG.md ./npm_build/
66cb93a386Sopenharmony_ci
67cb93a386Sopenharmony_ci	mkdir -p ./npm_build/bin/full
68cb93a386Sopenharmony_ci	./compile.sh release
69cb93a386Sopenharmony_ci	cp ../../out/canvaskit_wasm/canvaskit.js       ./npm_build/bin/full
70cb93a386Sopenharmony_ci	cp ../../out/canvaskit_wasm/canvaskit.wasm     ./npm_build/bin/full
71cb93a386Sopenharmony_ci
72cb93a386Sopenharmony_ci	# These features are turned off to keep code size smaller for the
73cb93a386Sopenharmony_ci	# general use case.
74cb93a386Sopenharmony_ci	./compile.sh release no_skottie no_particles no_rt_shader no_alias_font no_effects_deserialization
75cb93a386Sopenharmony_ci	cp ../../out/canvaskit_wasm/canvaskit.js       ./npm_build/bin
76cb93a386Sopenharmony_ci	cp ../../out/canvaskit_wasm/canvaskit.wasm     ./npm_build/bin
77cb93a386Sopenharmony_ci
78cb93a386Sopenharmony_ci	mkdir -p ./npm_build/bin/profiling
79cb93a386Sopenharmony_ci	./compile.sh profiling
80cb93a386Sopenharmony_ci	cp ../../out/canvaskit_wasm_profile/canvaskit.js       ./npm_build/bin/profiling
81cb93a386Sopenharmony_ci	cp ../../out/canvaskit_wasm_profile/canvaskit.wasm     ./npm_build/bin/profiling
82cb93a386Sopenharmony_ci
83cb93a386Sopenharmony_cigm_tests_debug:
84cb93a386Sopenharmony_ci	./compile_gm.sh debug
85cb93a386Sopenharmony_ci	mkdir -p ./out
86cb93a386Sopenharmony_ci	cp ../../out/wasm_gm_tests_debug/wasm_gm_tests.js       ./out
87cb93a386Sopenharmony_ci	cp ../../out/wasm_gm_tests_debug/wasm_gm_tests.wasm     ./out
88cb93a386Sopenharmony_ci
89cb93a386Sopenharmony_cigm_tests:
90cb93a386Sopenharmony_ci	./compile_gm.sh
91cb93a386Sopenharmony_ci	mkdir -p ./out
92cb93a386Sopenharmony_ci	cp ../../out/wasm_gm_tests/wasm_gm_tests.js       ./out
93cb93a386Sopenharmony_ci	cp ../../out/wasm_gm_tests/wasm_gm_tests.wasm     ./out
94cb93a386Sopenharmony_ci
95cb93a386Sopenharmony_cilocal-example:
96cb93a386Sopenharmony_ci	rm -rf node_modules/canvaskit
97cb93a386Sopenharmony_ci	mkdir -p node_modules
98cb93a386Sopenharmony_ci	ln -s ../npm_build node_modules/canvaskit
99cb93a386Sopenharmony_ci	echo "Go check out http://localhost:8000/npm_build/example.html"
100cb93a386Sopenharmony_ci	python3 ../../tools/serve_wasm.py
101cb93a386Sopenharmony_ci
102cb93a386Sopenharmony_citest-continuous:
103cb93a386Sopenharmony_ci	echo "Assuming npm ci has been run by user"
104cb93a386Sopenharmony_ci	echo "Also assuming make debug or release has also been run by a user (if needed)"
105cb93a386Sopenharmony_ci	npx karma start ./karma.conf.js --no-single-run --watch-poll
106cb93a386Sopenharmony_ci
107cb93a386Sopenharmony_citest-continuous-headless:
108cb93a386Sopenharmony_ci	npx karma start ./karma.conf.js --no-single-run --watch-poll --headless
109cb93a386Sopenharmony_ci
110cb93a386Sopenharmony_cinode-example:
111cb93a386Sopenharmony_ci	node ./npm_build/node.example.js --expose-wasm
112cb93a386Sopenharmony_ci
113cb93a386Sopenharmony_cidocker-compile:
114cb93a386Sopenharmony_ci	mkdir -p ${SKIA_ROOT}/out/canvaskit_wasm_docker
115cb93a386Sopenharmony_ci	docker run --rm --volume ${SKIA_ROOT}:/SRC \
116cb93a386Sopenharmony_ci               --volume ${SKIA_ROOT}/out/canvaskit_wasm_docker:/OUT \
117cb93a386Sopenharmony_ci               gcr.io/skia-public/canvaskit-emsdk:2.0.0_v1 \
118cb93a386Sopenharmony_ci               /SRC/infra/canvaskit/build_canvaskit.sh
119cb93a386Sopenharmony_ci
120cb93a386Sopenharmony_citypecheck:
121cb93a386Sopenharmony_ci	echo "Make sure you've run cd npm_build && npm ci recently"
122cb93a386Sopenharmony_ci	cd npm_build && npm run dtslint
123cb93a386Sopenharmony_ci
124cb93a386Sopenharmony_cibazel_gms_release:
125cb93a386Sopenharmony_ci	# We use spawn_strategy=local for "everyday" builds because emscripten assumes there
126cb93a386Sopenharmony_ci	# is a cache in the home directory that it needs to fill with compiled versions of libc etc.
127cb93a386Sopenharmony_ci	# https://emscripten.org/docs/tools_reference/emcc.html
128cb93a386Sopenharmony_ci	# By setting spawn_strategy=local, we can avoid recompiling all of this for every compilation
129cb93a386Sopenharmony_ci	# unit, by letting the cache be used (and not dropped from the sandbox), which gets expensive.
130cb93a386Sopenharmony_ci	# Local testing showed using the local strategy sped up a clean build from 9.5 minutes
131cb93a386Sopenharmony_ci	# to 1 minute. https://docs.bazel.build/versions/main/user-manual.html#strategy-options
132cb93a386Sopenharmony_ci	bazelisk build :gm-bindings-wasm --compilation_mode opt --spawn_strategy=local \
133cb93a386Sopenharmony_ci		--gpu_backend=gl_backend --with_gl_standard=webgl_standard \
134cb93a386Sopenharmony_ci		--included_codec=jpeg_codec --included_codec=png_codec --include_codec=webp_codec \
135cb93a386Sopenharmony_ci		--include_codec=gif_codec
136cb93a386Sopenharmony_ci	- rm -rf build/
137cb93a386Sopenharmony_ci	mkdir build
138cb93a386Sopenharmony_ci	cp ../../bazel-bin/modules/canvaskit/gm-bindings-wasm/gm-bindings.js build/gm-bindings.js
139cb93a386Sopenharmony_ci	cp ../../bazel-bin/modules/canvaskit/gm-bindings-wasm/gm-bindings.wasm build/gm-bindings.wasm
140cb93a386Sopenharmony_ci
141cb93a386Sopenharmony_cibazel_gms_debug:
142cb93a386Sopenharmony_ci	# See above note about spawn_strategy
143cb93a386Sopenharmony_ci	bazelisk build :gm-bindings-wasm --compilation_mode dbg --spawn_strategy=local \
144cb93a386Sopenharmony_ci		--gpu_backend=gl_backend --with_gl_standard=webgl_standard \
145cb93a386Sopenharmony_ci		--include_codec=jpeg_codec --include_codec=png_codec --include_codec=webp_codec \
146cb93a386Sopenharmony_ci		--include_codec=gif_codec
147cb93a386Sopenharmony_ci	- rm -rf build/
148cb93a386Sopenharmony_ci	mkdir build
149cb93a386Sopenharmony_ci	cp ../../bazel-bin/modules/canvaskit/gm-bindings-wasm/gm-bindings.js build/gm-bindings.js
150cb93a386Sopenharmony_ci	cp ../../bazel-bin/modules/canvaskit/gm-bindings-wasm/gm-bindings.wasm build/gm-bindings.wasm
151cb93a386Sopenharmony_ci
152cb93a386Sopenharmony_cibazel_canvaskit_debug:
153cb93a386Sopenharmony_ci	# See above note about spawn_strategy
154cb93a386Sopenharmony_ci	bazelisk build :canvaskit-wasm --compilation_mode dbg --spawn_strategy=local \
155cb93a386Sopenharmony_ci		--gpu_backend=gl_backend --with_gl_standard=webgl_standard \
156cb93a386Sopenharmony_ci		--include_codec=jpeg_codec --include_codec=png_codec --include_codec=webp_codec \
157cb93a386Sopenharmony_ci		--include_codec=gif_codec
158cb93a386Sopenharmony_ci	- rm -rf build/
159cb93a386Sopenharmony_ci	mkdir build
160cb93a386Sopenharmony_ci	cp ../../bazel-bin/modules/canvaskit/canvaskit-wasm/canvaskit.js build/canvaskit.js
161cb93a386Sopenharmony_ci	cp ../../bazel-bin/modules/canvaskit/canvaskit-wasm/canvaskit.wasm build/canvaskit.wasm
162