xref: /aosp_15_r20/external/skia/modules/pathkit/README.md (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard WorkerPathKit WASM API
2*c8dee2aaSAndroid Build Coastguard Worker================
3*c8dee2aaSAndroid Build Coastguard Worker
4*c8dee2aaSAndroid Build Coastguard WorkerThe [PathKit](https://skia.org/docs/user/modules/pathkit/) library lets you use
5*c8dee2aaSAndroid Build Coastguard WorkerSkia's feature-rich PathOps API in the browser.
6*c8dee2aaSAndroid Build Coastguard Worker
7*c8dee2aaSAndroid Build Coastguard WorkerCompiling the source
8*c8dee2aaSAndroid Build Coastguard Worker--------------------
9*c8dee2aaSAndroid Build Coastguard Worker
10*c8dee2aaSAndroid Build Coastguard Worker### Compiling with GN
11*c8dee2aaSAndroid Build Coastguard Worker
12*c8dee2aaSAndroid Build Coastguard WorkerGet a compiled [Enscriptem SDK](https://kripken.github.io/emscripten-site/docs/getting_started/downloads.html)
13*c8dee2aaSAndroid Build Coastguard Workerin your path. This is easiest done by running `//tools/git-sync-deps` which
14*c8dee2aaSAndroid Build Coastguard Workerdownloads and then runs `//bin/activate-emsdk`.
15*c8dee2aaSAndroid Build Coastguard Worker
16*c8dee2aaSAndroid Build Coastguard WorkerTo compile a production WASM build to `//out/pathkit`:
17*c8dee2aaSAndroid Build Coastguard Worker
18*c8dee2aaSAndroid Build Coastguard Worker```sh
19*c8dee2aaSAndroid Build Coastguard Worker./compile.sh
20*c8dee2aaSAndroid Build Coastguard Worker```
21*c8dee2aaSAndroid Build Coastguard Worker
22*c8dee2aaSAndroid Build Coastguard WorkerAdd `--help` for more options.
23*c8dee2aaSAndroid Build Coastguard Worker
24*c8dee2aaSAndroid Build Coastguard Worker### Compiling with Bazel
25*c8dee2aaSAndroid Build Coastguard Worker
26*c8dee2aaSAndroid Build Coastguard WorkerTo compile a production WASM build to `//bazel-bin/modules/pathkit/pathkit`:
27*c8dee2aaSAndroid Build Coastguard Worker
28*c8dee2aaSAndroid Build Coastguard Worker```sh
29*c8dee2aaSAndroid Build Coastguard Workerbazelisk build //modules/pathkit:pathkit --config=ck_full_webgl2_release
30*c8dee2aaSAndroid Build Coastguard Worker```
31*c8dee2aaSAndroid Build Coastguard Worker
32*c8dee2aaSAndroid Build Coastguard WorkerA debug build:
33*c8dee2aaSAndroid Build Coastguard Worker
34*c8dee2aaSAndroid Build Coastguard Worker```sh
35*c8dee2aaSAndroid Build Coastguard Workerbazelisk build //modules/pathkit:pathkit --config=ck_full_webgl2_debug
36*c8dee2aaSAndroid Build Coastguard Worker```
37*c8dee2aaSAndroid Build Coastguard Worker
38*c8dee2aaSAndroid Build Coastguard WorkerTesting
39*c8dee2aaSAndroid Build Coastguard Worker-------
40*c8dee2aaSAndroid Build Coastguard Worker
41*c8dee2aaSAndroid Build Coastguard Worker### Running example page locally:
42*c8dee2aaSAndroid Build Coastguard Worker
43*c8dee2aaSAndroid Build Coastguard Worker```sh
44*c8dee2aaSAndroid Build Coastguard Worker# First build PathKit
45*c8dee2aaSAndroid Build Coastguard Workermake release
46*c8dee2aaSAndroid Build Coastguard Worker# Then run a local test server
47*c8dee2aaSAndroid Build Coastguard Workermake local-example
48*c8dee2aaSAndroid Build Coastguard Worker```
49*c8dee2aaSAndroid Build Coastguard Worker
50*c8dee2aaSAndroid Build Coastguard WorkerThen follow messages to navigate the browser to the example page.
51*c8dee2aaSAndroid Build Coastguard Worker
52*c8dee2aaSAndroid Build Coastguard Worker### Automated tests
53*c8dee2aaSAndroid Build Coastguard Worker
54*c8dee2aaSAndroid Build Coastguard Worker**Testing the GN build**
55*c8dee2aaSAndroid Build Coastguard Worker
56*c8dee2aaSAndroid Build Coastguard Worker```sh
57*c8dee2aaSAndroid Build Coastguard Workermake release
58*c8dee2aaSAndroid Build Coastguard Workermake npm
59*c8dee2aaSAndroid Build Coastguard Workernpm ci
60*c8dee2aaSAndroid Build Coastguard Workermake test-continuous
61*c8dee2aaSAndroid Build Coastguard Worker```
62*c8dee2aaSAndroid Build Coastguard Worker
63*c8dee2aaSAndroid Build Coastguard Worker**Testing the Bazel build**
64*c8dee2aaSAndroid Build Coastguard Worker
65*c8dee2aaSAndroid Build Coastguard Worker```sh
66*c8dee2aaSAndroid Build Coastguard Workermake debug-bazel
67*c8dee2aaSAndroid Build Coastguard Workermake npm-bazel
68*c8dee2aaSAndroid Build Coastguard Workernpm ci
69*c8dee2aaSAndroid Build Coastguard Workermake test-continuous
70*c8dee2aaSAndroid Build Coastguard Worker```
71*c8dee2aaSAndroid Build Coastguard Worker
72*c8dee2aaSAndroid Build Coastguard WorkerDeploying to npm
73*c8dee2aaSAndroid Build Coastguard Worker----------------
74*c8dee2aaSAndroid Build Coastguard Worker
75*c8dee2aaSAndroid Build Coastguard WorkerNOTE: The deployment steps use the GN build.
76*c8dee2aaSAndroid Build Coastguard Worker
77*c8dee2aaSAndroid Build Coastguard Worker```sh
78*c8dee2aaSAndroid Build Coastguard Worker# Build the release version for both asmjs and WASM
79*c8dee2aaSAndroid Build Coastguard Worker# These binaries will be placed in the proper places of npm-*/bin
80*c8dee2aaSAndroid Build Coastguard Workermake npm
81*c8dee2aaSAndroid Build Coastguard Worker
82*c8dee2aaSAndroid Build Coastguard Worker# In each npm- subdirectory, run:
83*c8dee2aaSAndroid Build Coastguard Workernpm version minor (or patch or major)
84*c8dee2aaSAndroid Build Coastguard Workernpm login --registry https://wombat-dressing-room.appspot.com
85*c8dee2aaSAndroid Build Coastguard Workernpm publish
86*c8dee2aaSAndroid Build Coastguard Worker```