262dfbafb4
This uses the Bazel rule wasm_cc_binary, which is defined in @emsdk [1] Note that wasm_cc_binary does not have a linkopts argument defined, so we instead put any emcc options in the cc_binary target. This works around a few bugs in the emsdk Bazel rules: - https://github.com/emscripten-core/emsdk/issues/907 - https://github.com/emscripten-core/emsdk/issues/807 Prior to PS 5, this CL tried a different way to bring in the toolchain, a more manual way outlined in [2]. A similar approach (modifying the .bazelrc and specifying the toolchain directly) might be necessary at some point, but can probably still be done using the @emsdk Bazel rules and --config=wasm. To update the version of emscripten used, we just need to update the parameter in the WORKSPACE call to emsdk_emscripten_deps(). The example/index.html file in this CL does exactly the same as [3], except the WebGPU calls are made from C++ via WASM. I made heavy use of these examples [4], [5] while exploring APIs. What was also useful was looking at the emscripten source headers [6], [7], [8], [9]. I also learned a lot about WebGPU from [10]. [1] |
||
---|---|---|
.. | ||
c-api-example | ||
docs | ||
documentation | ||
ffmpeg | ||
graphite | ||
lowp-basic | ||
minimal_ios_mtl_skia_app | ||
pvg | ||
skottiekit | ||
skrive | ||
sktext | ||
sorttoy | ||
tools | ||
tskit | ||
wasm-skp-debugger | ||
webgpu-bazel | ||
xform | ||
xps_to_png |