| PathKit WASM API | |
| ================ | |
| The [PathKit](https://skia.org/docs/user/modules/pathkit/) library lets you use | |
| Skia's feature-rich PathOps API in the browser. | |
| Compiling the source | |
| -------------------- | |
| ### Compiling with GN | |
| Get a compiled [Enscriptem SDK](https://kripken.github.io/emscripten-site/docs/getting_started/downloads.html) | |
| in your path. This is easiest done by running `//tools/git-sync-deps` which | |
| downloads and then runs `//bin/activate-emsdk`. | |
| To compile a production WASM build to `//out/pathkit`: | |
| ```sh | |
| ./compile.sh | |
| ``` | |
| Add `--help` for more options. | |
| ### Compiling with Bazel | |
| To compile a production WASM build to `//bazel-bin/modules/pathkit/pathkit`: | |
| ```sh | |
| bazelisk build //modules/pathkit:pathkit --config=ck_full_webgl2_release | |
| ``` | |
| A debug build: | |
| ```sh | |
| bazelisk build //modules/pathkit:pathkit --config=ck_full_webgl2_debug | |
| ``` | |
| Testing | |
| ------- | |
| ### Running example page locally: | |
| ```sh | |
| # First build PathKit | |
| make release | |
| # Then run a local test server | |
| make local-example | |
| ``` | |
| Then follow messages to navigate the browser to the example page. | |
| ### Automated tests | |
| **Testing the GN build** | |
| ```sh | |
| make release | |
| make npm | |
| npm ci | |
| make test-continuous | |
| ``` | |
| **Testing the Bazel build** | |
| ```sh | |
| make debug-bazel | |
| make npm-bazel | |
| npm ci | |
| make test-continuous | |
| ``` | |
| Deploying to npm | |
| ---------------- | |
| NOTE: The deployment steps use the GN build. | |
| ```sh | |
| # Build the release version for both asmjs and WASM | |
| # These binaries will be placed in the proper places of npm-*/bin | |
| make npm | |
| # In each npm- subdirectory, run: | |
| npm version minor (or patch or major) | |
| npm login --registry https://wombat-dressing-room.appspot.com | |
| npm publish | |
| ``` |