1*c8dee2aaSAndroid Build Coastguard Worker#!/bin/bash 2*c8dee2aaSAndroid Build Coastguard Worker# Copyright 2018 Google LLC 3*c8dee2aaSAndroid Build Coastguard Worker# 4*c8dee2aaSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 5*c8dee2aaSAndroid Build Coastguard Worker# found in the LICENSE file. 6*c8dee2aaSAndroid Build Coastguard Worker 7*c8dee2aaSAndroid Build Coastguard Workerset -ex 8*c8dee2aaSAndroid Build Coastguard Worker 9*c8dee2aaSAndroid Build Coastguard Worker# Navigate to SKIA_HOME from where this file is located. 10*c8dee2aaSAndroid Build Coastguard WorkerBASE_DIR=`cd $(dirname ${BASH_SOURCE[0]}) && pwd` 11*c8dee2aaSAndroid Build Coastguard Workerpushd $BASE_DIR/../.. 12*c8dee2aaSAndroid Build Coastguard Worker./bin/fetch-gn 13*c8dee2aaSAndroid Build Coastguard Worker 14*c8dee2aaSAndroid Build Coastguard WorkerIS_OFFICIAL_BUILD="true" 15*c8dee2aaSAndroid Build Coastguard WorkerIS_DEBUG="false" 16*c8dee2aaSAndroid Build Coastguard WorkerFORCE_TRACING="false" 17*c8dee2aaSAndroid Build Coastguard WorkerPROFILE_BUILD="false" 18*c8dee2aaSAndroid Build Coastguard Worker# Tracing will be disabled in release/profiling unless this flag is seen. Tracing will 19*c8dee2aaSAndroid Build Coastguard Worker# be on debug builds always. 20*c8dee2aaSAndroid Build Coastguard Workerif [[ $@ != *force_tracing* ]] ; then 21*c8dee2aaSAndroid Build Coastguard Worker FORCE_TRACING="true" 22*c8dee2aaSAndroid Build Coastguard Workerfi 23*c8dee2aaSAndroid Build Coastguard Worker 24*c8dee2aaSAndroid Build Coastguard Workerif [[ $@ == *debug_build* ]]; then 25*c8dee2aaSAndroid Build Coastguard Worker echo "Building a Debug build" 26*c8dee2aaSAndroid Build Coastguard Worker IS_DEBUG="true" 27*c8dee2aaSAndroid Build Coastguard Worker IS_OFFICIAL_BUILD="false" 28*c8dee2aaSAndroid Build Coastguard Worker BUILD_DIR=${BUILD_DIR:="out/canvaskit_wasm_debug"} 29*c8dee2aaSAndroid Build Coastguard Workerelif [[ $@ == *profiling* ]]; then 30*c8dee2aaSAndroid Build Coastguard Worker echo "Building a build for profiling" 31*c8dee2aaSAndroid Build Coastguard Worker PROFILE_BUILD="true" 32*c8dee2aaSAndroid Build Coastguard Worker BUILD_DIR=${BUILD_DIR:="out/canvaskit_wasm_profile"} 33*c8dee2aaSAndroid Build Coastguard Workerelse 34*c8dee2aaSAndroid Build Coastguard Worker BUILD_DIR=${BUILD_DIR:="out/canvaskit_wasm"} 35*c8dee2aaSAndroid Build Coastguard Workerfi 36*c8dee2aaSAndroid Build Coastguard Worker 37*c8dee2aaSAndroid Build Coastguard Workermkdir -p $BUILD_DIR 38*c8dee2aaSAndroid Build Coastguard Worker# sometimes the .a files keep old symbols around - cleaning them out makes sure 39*c8dee2aaSAndroid Build Coastguard Worker# we get a fresh build. 40*c8dee2aaSAndroid Build Coastguard Workerrm -f $BUILD_DIR/*.a 41*c8dee2aaSAndroid Build Coastguard Worker 42*c8dee2aaSAndroid Build Coastguard WorkerENABLE_GANESH="true" 43*c8dee2aaSAndroid Build Coastguard WorkerENABLE_GRAPHITE="false" 44*c8dee2aaSAndroid Build Coastguard WorkerENABLE_WEBGL="false" 45*c8dee2aaSAndroid Build Coastguard WorkerENABLE_WEBGPU="false" 46*c8dee2aaSAndroid Build Coastguard Workerif [[ $@ == *cpu* ]]; then 47*c8dee2aaSAndroid Build Coastguard Worker echo "Using the CPU backend instead of the GPU backend" 48*c8dee2aaSAndroid Build Coastguard Worker ENABLE_GANESH="false" 49*c8dee2aaSAndroid Build Coastguard Workerelif [[ $@ == *webgpu* ]]; then 50*c8dee2aaSAndroid Build Coastguard Worker echo "Using WebGPU instead of WebGL" 51*c8dee2aaSAndroid Build Coastguard Worker ENABLE_WEBGPU="true" 52*c8dee2aaSAndroid Build Coastguard Worker ENABLE_GRAPHITE="true" 53*c8dee2aaSAndroid Build Coastguard Worker ENABLE_GANESH="false" 54*c8dee2aaSAndroid Build Coastguard Workerelse 55*c8dee2aaSAndroid Build Coastguard Worker ENABLE_WEBGL="true" 56*c8dee2aaSAndroid Build Coastguard Workerfi 57*c8dee2aaSAndroid Build Coastguard Worker 58*c8dee2aaSAndroid Build Coastguard WorkerSERIALIZE_SKP="true" 59*c8dee2aaSAndroid Build Coastguard Workerif [[ $@ == *no_skp_serialization* ]]; then 60*c8dee2aaSAndroid Build Coastguard Worker # This saves about 20kb compressed. 61*c8dee2aaSAndroid Build Coastguard Worker echo "disabling SKP serialization" 62*c8dee2aaSAndroid Build Coastguard Worker SERIALIZE_SKP="false" 63*c8dee2aaSAndroid Build Coastguard Workerfi 64*c8dee2aaSAndroid Build Coastguard WorkerDESERIALIZE_EFFECTS="true" 65*c8dee2aaSAndroid Build Coastguard Workerif [[ $@ == *no_effects_deserialization* ]]; then 66*c8dee2aaSAndroid Build Coastguard Worker # This saves about 60kb compressed. 67*c8dee2aaSAndroid Build Coastguard Worker echo "disabling effects deserialization" 68*c8dee2aaSAndroid Build Coastguard Worker DESERIALIZE_EFFECTS="false" 69*c8dee2aaSAndroid Build Coastguard Workerfi 70*c8dee2aaSAndroid Build Coastguard Worker 71*c8dee2aaSAndroid Build Coastguard WorkerENABLE_SKOTTIE="true" 72*c8dee2aaSAndroid Build Coastguard Workerif [[ $@ == *no_skottie* ]]; then 73*c8dee2aaSAndroid Build Coastguard Worker echo "Omitting Skottie" 74*c8dee2aaSAndroid Build Coastguard Worker ENABLE_SKOTTIE="false" 75*c8dee2aaSAndroid Build Coastguard Workerfi 76*c8dee2aaSAndroid Build Coastguard Worker 77*c8dee2aaSAndroid Build Coastguard WorkerINCLUDE_VIEWER="false" 78*c8dee2aaSAndroid Build Coastguard WorkerUSE_EXPAT="false" 79*c8dee2aaSAndroid Build Coastguard Workerif [[ $@ == *viewer* ]]; then 80*c8dee2aaSAndroid Build Coastguard Worker echo "Including viewer" 81*c8dee2aaSAndroid Build Coastguard Worker INCLUDE_VIEWER="true" 82*c8dee2aaSAndroid Build Coastguard Worker USE_EXPAT="true" 83*c8dee2aaSAndroid Build Coastguard Worker IS_OFFICIAL_BUILD="false" 84*c8dee2aaSAndroid Build Coastguard Workerfi 85*c8dee2aaSAndroid Build Coastguard Worker 86*c8dee2aaSAndroid Build Coastguard WorkerENABLE_PATHOPS="true" 87*c8dee2aaSAndroid Build Coastguard Workerif [[ $@ == *no_pathops* ]] ; then 88*c8dee2aaSAndroid Build Coastguard Worker # This saves about 2kb compressed. 89*c8dee2aaSAndroid Build Coastguard Worker echo "Omitting PathOps" 90*c8dee2aaSAndroid Build Coastguard Worker ENABLE_PATHOPS="false" 91*c8dee2aaSAndroid Build Coastguard Workerfi 92*c8dee2aaSAndroid Build Coastguard Worker 93*c8dee2aaSAndroid Build Coastguard WorkerENABLE_MATRIX="true" 94*c8dee2aaSAndroid Build Coastguard Workerif [[ $@ == *no_matrix* ]]; then 95*c8dee2aaSAndroid Build Coastguard Worker echo "Omitting matrix helper code" 96*c8dee2aaSAndroid Build Coastguard Worker ENABLE_MATRIX="false" 97*c8dee2aaSAndroid Build Coastguard Workerfi 98*c8dee2aaSAndroid Build Coastguard Worker 99*c8dee2aaSAndroid Build Coastguard WorkerENABLE_CANVAS="true" 100*c8dee2aaSAndroid Build Coastguard Workerif [[ $@ == *no_canvas* || $@ == *no_matrix* ]]; then 101*c8dee2aaSAndroid Build Coastguard Worker # Note: HTML Canvas bindings depend on the matrix helpers. 102*c8dee2aaSAndroid Build Coastguard Worker echo "Omitting bindings for HTML Canvas API" 103*c8dee2aaSAndroid Build Coastguard Worker ENABLE_CANVAS="false" 104*c8dee2aaSAndroid Build Coastguard Workerfi 105*c8dee2aaSAndroid Build Coastguard Worker 106*c8dee2aaSAndroid Build Coastguard WorkerGN_FONT="skia_enable_fontmgr_custom_directory=false " 107*c8dee2aaSAndroid Build Coastguard WorkerWOFF2_FONT="skia_use_freetype_woff2=true" 108*c8dee2aaSAndroid Build Coastguard WorkerENABLE_FONT="true" 109*c8dee2aaSAndroid Build Coastguard WorkerENABLE_EMBEDDED_FONT="true" 110*c8dee2aaSAndroid Build Coastguard Workerif [[ $@ == *no_font* ]]; then 111*c8dee2aaSAndroid Build Coastguard Worker echo "Omitting the built-in font(s), font manager and all code dealing with fonts" 112*c8dee2aaSAndroid Build Coastguard Worker ENABLE_FONT="false" 113*c8dee2aaSAndroid Build Coastguard Worker ENABLE_EMBEDDED_FONT="false" 114*c8dee2aaSAndroid Build Coastguard Worker GN_FONT+="skia_enable_fontmgr_custom_embedded=false skia_enable_fontmgr_custom_empty=false " 115*c8dee2aaSAndroid Build Coastguard Workerelse 116*c8dee2aaSAndroid Build Coastguard Worker if [[ $@ == *no_embedded_font* ]]; then 117*c8dee2aaSAndroid Build Coastguard Worker echo "Omitting the built-in font(s)" 118*c8dee2aaSAndroid Build Coastguard Worker ENABLE_EMBEDDED_FONT="false" 119*c8dee2aaSAndroid Build Coastguard Worker fi 120*c8dee2aaSAndroid Build Coastguard Worker # Generate the font's binary file (which is covered by .gitignore) 121*c8dee2aaSAndroid Build Coastguard Worker GN_FONT+="skia_enable_fontmgr_custom_embedded=true skia_enable_fontmgr_custom_empty=true " 122*c8dee2aaSAndroid Build Coastguard Workerfi 123*c8dee2aaSAndroid Build Coastguard Worker 124*c8dee2aaSAndroid Build Coastguard Workerif [[ $@ == *no_woff2* ]]; then 125*c8dee2aaSAndroid Build Coastguard Worker WOFF2_FONT="skia_use_freetype_woff2=false" 126*c8dee2aaSAndroid Build Coastguard Workerfi 127*c8dee2aaSAndroid Build Coastguard Worker 128*c8dee2aaSAndroid Build Coastguard WorkerENABLE_ALIAS_FONT="true" 129*c8dee2aaSAndroid Build Coastguard Workerif [[ $@ == *no_alias_font* ]]; then 130*c8dee2aaSAndroid Build Coastguard Worker ENABLE_ALIAS_FONT="false" 131*c8dee2aaSAndroid Build Coastguard Workerfi 132*c8dee2aaSAndroid Build Coastguard Worker 133*c8dee2aaSAndroid Build Coastguard WorkerLEGACY_DRAW_VERTICES="false" 134*c8dee2aaSAndroid Build Coastguard Workerif [[ $@ == *legacy_draw_vertices* ]]; then 135*c8dee2aaSAndroid Build Coastguard Worker LEGACY_DRAW_VERTICES="true" 136*c8dee2aaSAndroid Build Coastguard Workerfi 137*c8dee2aaSAndroid Build Coastguard Worker 138*c8dee2aaSAndroid Build Coastguard WorkerDEBUGGER_ENABLED="false" 139*c8dee2aaSAndroid Build Coastguard Workerif [[ $@ == *enable_debugger* ]]; then 140*c8dee2aaSAndroid Build Coastguard Worker DEBUGGER_ENABLED="true" 141*c8dee2aaSAndroid Build Coastguard Workerfi 142*c8dee2aaSAndroid Build Coastguard Worker 143*c8dee2aaSAndroid Build Coastguard WorkerGN_SHAPER="skia_use_icu=true skia_use_client_icu=false skia_use_libgrapheme=false skia_use_icu4x=false skia_use_system_icu=false skia_use_harfbuzz=true skia_use_system_harfbuzz=false" 144*c8dee2aaSAndroid Build Coastguard Workerif [[ $@ == *primitive_shaper* ]] || [[ $@ == *no_font* ]]; then 145*c8dee2aaSAndroid Build Coastguard Worker echo "Using the primitive shaper instead of the harfbuzz/icu one" 146*c8dee2aaSAndroid Build Coastguard Worker GN_SHAPER="skia_use_icu=false skia_use_harfbuzz=false" 147*c8dee2aaSAndroid Build Coastguard Workerfi 148*c8dee2aaSAndroid Build Coastguard Worker 149*c8dee2aaSAndroid Build Coastguard Workerif [[ $@ == *client_unicode* ]] ; then 150*c8dee2aaSAndroid Build Coastguard Worker echo "Using the client-provided skunicode data and harfbuz instead of the icu-provided data" 151*c8dee2aaSAndroid Build Coastguard Worker GN_SHAPER="skia_use_icu=false skia_use_client_icu=true skia_use_libgrapheme=false skia_use_icu4x=false skia_use_harfbuzz=true skia_use_system_harfbuzz=false" 152*c8dee2aaSAndroid Build Coastguard Workerfi 153*c8dee2aaSAndroid Build Coastguard Worker 154*c8dee2aaSAndroid Build Coastguard WorkerENABLE_PARAGRAPH="true" 155*c8dee2aaSAndroid Build Coastguard Workerif [[ $@ == *no_paragraph* ]] || [[ $@ == *primitive_shaper* ]] || [[ $@ == *no_font* ]]; then 156*c8dee2aaSAndroid Build Coastguard Worker echo "Omitting paragraph (must have fonts and non-primitive shaper)" 157*c8dee2aaSAndroid Build Coastguard Worker ENABLE_PARAGRAPH="false" 158*c8dee2aaSAndroid Build Coastguard Workerfi 159*c8dee2aaSAndroid Build Coastguard Worker 160*c8dee2aaSAndroid Build Coastguard WorkerDO_DECODE="true" 161*c8dee2aaSAndroid Build Coastguard Workerif [[ $@ == *no_codecs* ]]; then 162*c8dee2aaSAndroid Build Coastguard Worker echo "Omitting codecs" 163*c8dee2aaSAndroid Build Coastguard Worker DO_DECODE="false" 164*c8dee2aaSAndroid Build Coastguard Worker ENCODE_JPEG="false" 165*c8dee2aaSAndroid Build Coastguard Worker ENCODE_PNG="false" 166*c8dee2aaSAndroid Build Coastguard Worker ENCODE_WEBP="false" 167*c8dee2aaSAndroid Build Coastguard Worker NO_ENCODE_JPEG="true" 168*c8dee2aaSAndroid Build Coastguard Worker NO_ENCODE_PNG="true" 169*c8dee2aaSAndroid Build Coastguard Worker NO_ENCODE_WEBP="true" 170*c8dee2aaSAndroid Build Coastguard Workerelse 171*c8dee2aaSAndroid Build Coastguard Worker 172*c8dee2aaSAndroid Build Coastguard Worker ENCODE_PNG="true" 173*c8dee2aaSAndroid Build Coastguard Worker NO_ENCODE_PNG="false" 174*c8dee2aaSAndroid Build Coastguard Worker if [[ $@ == *no_encode_png* ]]; then 175*c8dee2aaSAndroid Build Coastguard Worker ENCODE_PNG="false" 176*c8dee2aaSAndroid Build Coastguard Worker NO_ENCODE_PNG="true" 177*c8dee2aaSAndroid Build Coastguard Worker fi 178*c8dee2aaSAndroid Build Coastguard Worker 179*c8dee2aaSAndroid Build Coastguard Worker ENCODE_JPEG="true" 180*c8dee2aaSAndroid Build Coastguard Worker NO_ENCODE_JPEG="false" 181*c8dee2aaSAndroid Build Coastguard Worker if [[ $@ == *no_encode_jpeg* ]]; then 182*c8dee2aaSAndroid Build Coastguard Worker ENCODE_JPEG="false" 183*c8dee2aaSAndroid Build Coastguard Worker NO_ENCODE_JPEG="true" 184*c8dee2aaSAndroid Build Coastguard Worker fi 185*c8dee2aaSAndroid Build Coastguard Worker 186*c8dee2aaSAndroid Build Coastguard Worker ENCODE_WEBP="true" 187*c8dee2aaSAndroid Build Coastguard Worker NO_ENCODE_WEBP="false" 188*c8dee2aaSAndroid Build Coastguard Worker if [[ $@ == *no_encode_webp* ]]; then 189*c8dee2aaSAndroid Build Coastguard Worker ENCODE_WEBP="false" 190*c8dee2aaSAndroid Build Coastguard Worker NO_ENCODE_WEBP="true" 191*c8dee2aaSAndroid Build Coastguard Worker fi 192*c8dee2aaSAndroid Build Coastguard Worker 193*c8dee2aaSAndroid Build Coastguard Workerfi # no_codecs 194*c8dee2aaSAndroid Build Coastguard Worker 195*c8dee2aaSAndroid Build Coastguard Worker./bin/fetch-ninja 196*c8dee2aaSAndroid Build Coastguard WorkerNINJA=third_party/ninja/ninja 197*c8dee2aaSAndroid Build Coastguard Worker 198*c8dee2aaSAndroid Build Coastguard Workerecho "Compiling" 199*c8dee2aaSAndroid Build Coastguard Worker 200*c8dee2aaSAndroid Build Coastguard Worker./bin/gn gen ${BUILD_DIR} \ 201*c8dee2aaSAndroid Build Coastguard Worker --args="is_debug=${IS_DEBUG} \ 202*c8dee2aaSAndroid Build Coastguard Worker is_official_build=${IS_OFFICIAL_BUILD} \ 203*c8dee2aaSAndroid Build Coastguard Worker is_component_build=false \ 204*c8dee2aaSAndroid Build Coastguard Worker is_trivial_abi=true \ 205*c8dee2aaSAndroid Build Coastguard Worker werror=true \ 206*c8dee2aaSAndroid Build Coastguard Worker target_cpu=\"wasm\" \ 207*c8dee2aaSAndroid Build Coastguard Worker \ 208*c8dee2aaSAndroid Build Coastguard Worker skia_use_angle=false \ 209*c8dee2aaSAndroid Build Coastguard Worker skia_use_dng_sdk=false \ 210*c8dee2aaSAndroid Build Coastguard Worker skia_use_dawn=${ENABLE_WEBGPU} \ 211*c8dee2aaSAndroid Build Coastguard Worker skia_use_webgl=${ENABLE_WEBGL} \ 212*c8dee2aaSAndroid Build Coastguard Worker skia_use_webgpu=${ENABLE_WEBGPU} \ 213*c8dee2aaSAndroid Build Coastguard Worker skia_use_expat=${USE_EXPAT} \ 214*c8dee2aaSAndroid Build Coastguard Worker skia_use_fontconfig=false \ 215*c8dee2aaSAndroid Build Coastguard Worker skia_use_freetype=true \ 216*c8dee2aaSAndroid Build Coastguard Worker skia_use_libheif=false \ 217*c8dee2aaSAndroid Build Coastguard Worker skia_use_libjpeg_turbo_decode=${DO_DECODE} \ 218*c8dee2aaSAndroid Build Coastguard Worker skia_use_libjpeg_turbo_encode=${ENCODE_JPEG} \ 219*c8dee2aaSAndroid Build Coastguard Worker skia_use_no_jpeg_encode=${NO_ENCODE_JPEG} \ 220*c8dee2aaSAndroid Build Coastguard Worker skia_use_libpng_decode=${DO_DECODE} \ 221*c8dee2aaSAndroid Build Coastguard Worker skia_use_libpng_encode=${ENCODE_PNG} \ 222*c8dee2aaSAndroid Build Coastguard Worker skia_use_no_png_encode=${NO_ENCODE_PNG} \ 223*c8dee2aaSAndroid Build Coastguard Worker skia_use_libwebp_decode=${DO_DECODE} \ 224*c8dee2aaSAndroid Build Coastguard Worker skia_use_libwebp_encode=${ENCODE_WEBP} \ 225*c8dee2aaSAndroid Build Coastguard Worker skia_use_no_webp_encode=${NO_ENCODE_WEBP} \ 226*c8dee2aaSAndroid Build Coastguard Worker skia_use_lua=false \ 227*c8dee2aaSAndroid Build Coastguard Worker skia_use_piex=false \ 228*c8dee2aaSAndroid Build Coastguard Worker skia_use_system_freetype2=false \ 229*c8dee2aaSAndroid Build Coastguard Worker skia_use_system_libjpeg_turbo=false \ 230*c8dee2aaSAndroid Build Coastguard Worker skia_use_system_libpng=false \ 231*c8dee2aaSAndroid Build Coastguard Worker skia_use_system_libwebp=false \ 232*c8dee2aaSAndroid Build Coastguard Worker skia_use_system_zlib=false\ 233*c8dee2aaSAndroid Build Coastguard Worker skia_use_vulkan=false \ 234*c8dee2aaSAndroid Build Coastguard Worker skia_use_wuffs=true \ 235*c8dee2aaSAndroid Build Coastguard Worker skia_use_zlib=true \ 236*c8dee2aaSAndroid Build Coastguard Worker skia_enable_ganesh=${ENABLE_GANESH} \ 237*c8dee2aaSAndroid Build Coastguard Worker skia_enable_graphite=${ENABLE_GRAPHITE} \ 238*c8dee2aaSAndroid Build Coastguard Worker skia_build_for_debugger=${DEBUGGER_ENABLED} \ 239*c8dee2aaSAndroid Build Coastguard Worker skia_enable_skottie=${ENABLE_SKOTTIE} \ 240*c8dee2aaSAndroid Build Coastguard Worker \ 241*c8dee2aaSAndroid Build Coastguard Worker ${GN_SHAPER} \ 242*c8dee2aaSAndroid Build Coastguard Worker ${GN_FONT} \ 243*c8dee2aaSAndroid Build Coastguard Worker ${WOFF2_FONT} \ 244*c8dee2aaSAndroid Build Coastguard Worker \ 245*c8dee2aaSAndroid Build Coastguard Worker skia_enable_skshaper=true \ 246*c8dee2aaSAndroid Build Coastguard Worker skia_enable_skparagraph=true \ 247*c8dee2aaSAndroid Build Coastguard Worker skia_enable_pdf=false \ 248*c8dee2aaSAndroid Build Coastguard Worker skia_canvaskit_enable_rt_shader=true \ 249*c8dee2aaSAndroid Build Coastguard Worker skia_canvaskit_force_tracing=${FORCE_TRACING} \ 250*c8dee2aaSAndroid Build Coastguard Worker skia_canvaskit_profile_build=${PROFILE_BUILD} \ 251*c8dee2aaSAndroid Build Coastguard Worker skia_canvaskit_enable_skp_serialization=${SERIALIZE_SKP} \ 252*c8dee2aaSAndroid Build Coastguard Worker skia_canvaskit_enable_effects_deserialization=${DESERIALIZE_EFFECTS} \ 253*c8dee2aaSAndroid Build Coastguard Worker skia_canvaskit_include_viewer=${INCLUDE_VIEWER} \ 254*c8dee2aaSAndroid Build Coastguard Worker skia_canvaskit_enable_pathops=${ENABLE_PATHOPS} \ 255*c8dee2aaSAndroid Build Coastguard Worker skia_canvaskit_enable_matrix_helper=${ENABLE_MATRIX} \ 256*c8dee2aaSAndroid Build Coastguard Worker skia_canvaskit_enable_canvas_bindings=${ENABLE_CANVAS} \ 257*c8dee2aaSAndroid Build Coastguard Worker skia_canvaskit_enable_font=${ENABLE_FONT} \ 258*c8dee2aaSAndroid Build Coastguard Worker skia_canvaskit_enable_embedded_font=${ENABLE_EMBEDDED_FONT} \ 259*c8dee2aaSAndroid Build Coastguard Worker skia_canvaskit_enable_alias_font=${ENABLE_ALIAS_FONT} \ 260*c8dee2aaSAndroid Build Coastguard Worker skia_canvaskit_legacy_draw_vertices_blend_mode=${LEGACY_DRAW_VERTICES} \ 261*c8dee2aaSAndroid Build Coastguard Worker skia_canvaskit_enable_debugger=${DEBUGGER_ENABLED} \ 262*c8dee2aaSAndroid Build Coastguard Worker skia_canvaskit_enable_paragraph=${ENABLE_PARAGRAPH} \ 263*c8dee2aaSAndroid Build Coastguard Worker skia_canvaskit_enable_webgl=${ENABLE_WEBGL} \ 264*c8dee2aaSAndroid Build Coastguard Worker skia_canvaskit_enable_webgpu=${ENABLE_WEBGPU}" 265*c8dee2aaSAndroid Build Coastguard Worker 266*c8dee2aaSAndroid Build Coastguard Worker${NINJA} -C ${BUILD_DIR} canvaskit.js 267