1*c8dee2aaSAndroid Build Coastguard Worker# Copyright 2020 Google Inc. 2*c8dee2aaSAndroid Build Coastguard Worker# 3*c8dee2aaSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 4*c8dee2aaSAndroid Build Coastguard Worker# found in the LICENSE file. 5*c8dee2aaSAndroid Build Coastguard Workerimport("../../gn/skia.gni") 6*c8dee2aaSAndroid Build Coastguard Workerimport("../../gn/toolchain/wasm.gni") 7*c8dee2aaSAndroid Build Coastguard Workerimport("canvaskit.gni") 8*c8dee2aaSAndroid Build Coastguard Worker 9*c8dee2aaSAndroid Build Coastguard Worker# These targets depend on components that are only declared if 10*c8dee2aaSAndroid Build Coastguard Worker# `skia_enable_tools` is true. 11*c8dee2aaSAndroid Build Coastguard Workerif (skia_enable_tools) { 12*c8dee2aaSAndroid Build Coastguard Worker component("viewer_wasm") { 13*c8dee2aaSAndroid Build Coastguard Worker testonly = true 14*c8dee2aaSAndroid Build Coastguard Worker include_dirs = [ "../.." ] 15*c8dee2aaSAndroid Build Coastguard Worker sources = [ 16*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGAttribute.cpp", 17*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGAttributeParser.cpp", 18*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGCircle.cpp", 19*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGClipPath.cpp", 20*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGContainer.cpp", 21*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGDOM.cpp", 22*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGEllipse.cpp", 23*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGFe.cpp", 24*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGFeColorMatrix.cpp", 25*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGFeComposite.cpp", 26*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGFeTurbulence.cpp", 27*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGFilter.cpp", 28*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGFilterContext.cpp", 29*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGGradient.cpp", 30*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGLine.cpp", 31*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGLinearGradient.cpp", 32*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGNode.cpp", 33*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGPath.cpp", 34*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGPattern.cpp", 35*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGPoly.cpp", 36*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGRadialGradient.cpp", 37*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGRect.cpp", 38*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGRenderContext.cpp", 39*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGSVG.cpp", 40*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGShape.cpp", 41*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGStop.cpp", 42*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGText.cpp", 43*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGTransformableNode.cpp", 44*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGUse.cpp", 45*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg/src/SkSVGValue.cpp", 46*c8dee2aaSAndroid Build Coastguard Worker "../../tools/viewer/SKPSlide.cpp", 47*c8dee2aaSAndroid Build Coastguard Worker "../../tools/viewer/SampleSlide.cpp", 48*c8dee2aaSAndroid Build Coastguard Worker "../../tools/viewer/SvgSlide.cpp", 49*c8dee2aaSAndroid Build Coastguard Worker ] 50*c8dee2aaSAndroid Build Coastguard Worker } 51*c8dee2aaSAndroid Build Coastguard Worker 52*c8dee2aaSAndroid Build Coastguard Worker component("gm_wasm") { 53*c8dee2aaSAndroid Build Coastguard Worker testonly = true 54*c8dee2aaSAndroid Build Coastguard Worker include_dirs = [ "../.." ] 55*c8dee2aaSAndroid Build Coastguard Worker deps = [ 56*c8dee2aaSAndroid Build Coastguard Worker "../..:hash_and_encode", 57*c8dee2aaSAndroid Build Coastguard Worker "../..:tool_utils", 58*c8dee2aaSAndroid Build Coastguard Worker "../../modules/svg:svg", 59*c8dee2aaSAndroid Build Coastguard Worker ] 60*c8dee2aaSAndroid Build Coastguard Worker defines = [ "SK_GANESH" ] 61*c8dee2aaSAndroid Build Coastguard Worker } 62*c8dee2aaSAndroid Build Coastguard Worker} 63*c8dee2aaSAndroid Build Coastguard Worker 64*c8dee2aaSAndroid Build Coastguard Workercomponent("debugger") { 65*c8dee2aaSAndroid Build Coastguard Worker include_dirs = [ "../.." ] 66*c8dee2aaSAndroid Build Coastguard Worker sources = [ 67*c8dee2aaSAndroid Build Coastguard Worker "../../tools/SkSharingProc.cpp", 68*c8dee2aaSAndroid Build Coastguard Worker "../../tools/UrlDataManager.cpp", 69*c8dee2aaSAndroid Build Coastguard Worker "../../tools/debugger/DebugCanvas.cpp", 70*c8dee2aaSAndroid Build Coastguard Worker "../../tools/debugger/DebugLayerManager.cpp", 71*c8dee2aaSAndroid Build Coastguard Worker "../../tools/debugger/DrawCommand.cpp", 72*c8dee2aaSAndroid Build Coastguard Worker "../../tools/debugger/JsonWriteBuffer.cpp", 73*c8dee2aaSAndroid Build Coastguard Worker ] 74*c8dee2aaSAndroid Build Coastguard Worker defines = [ "SK_GANESH" ] 75*c8dee2aaSAndroid Build Coastguard Worker} 76*c8dee2aaSAndroid Build Coastguard Worker 77*c8dee2aaSAndroid Build Coastguard Workeraction("create_notomono_cpp") { 78*c8dee2aaSAndroid Build Coastguard Worker script = "../../tools/embed_resources.py" 79*c8dee2aaSAndroid Build Coastguard Worker 80*c8dee2aaSAndroid Build Coastguard Worker inputs = [ "fonts/NotoMono-Regular.ttf" ] 81*c8dee2aaSAndroid Build Coastguard Worker 82*c8dee2aaSAndroid Build Coastguard Worker output_path = 83*c8dee2aaSAndroid Build Coastguard Worker "$root_out_dir/modules/canvaskit/fonts/NotoMono-Regular.ttf.ninja.cpp" 84*c8dee2aaSAndroid Build Coastguard Worker 85*c8dee2aaSAndroid Build Coastguard Worker outputs = [ output_path ] 86*c8dee2aaSAndroid Build Coastguard Worker 87*c8dee2aaSAndroid Build Coastguard Worker args = [ 88*c8dee2aaSAndroid Build Coastguard Worker "--name=SK_EMBEDDED_FONTS", 89*c8dee2aaSAndroid Build Coastguard Worker "--input", 90*c8dee2aaSAndroid Build Coastguard Worker rebase_path("fonts/NotoMono-Regular.ttf"), 91*c8dee2aaSAndroid Build Coastguard Worker "--output", 92*c8dee2aaSAndroid Build Coastguard Worker rebase_path(output_path), 93*c8dee2aaSAndroid Build Coastguard Worker "--align=4", 94*c8dee2aaSAndroid Build Coastguard Worker ] 95*c8dee2aaSAndroid Build Coastguard Worker} 96*c8dee2aaSAndroid Build Coastguard Worker 97*c8dee2aaSAndroid Build Coastguard Workerskia_wasm_lib("canvaskit") { 98*c8dee2aaSAndroid Build Coastguard Worker deps = [ "../..:skia" ] 99*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_enable_paragraph) { 100*c8dee2aaSAndroid Build Coastguard Worker deps += [ 101*c8dee2aaSAndroid Build Coastguard Worker "../../modules/skparagraph:skparagraph", 102*c8dee2aaSAndroid Build Coastguard Worker "../../modules/skunicode:skunicode", 103*c8dee2aaSAndroid Build Coastguard Worker ] 104*c8dee2aaSAndroid Build Coastguard Worker } 105*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_skottie) { 106*c8dee2aaSAndroid Build Coastguard Worker deps += [ 107*c8dee2aaSAndroid Build Coastguard Worker "../../modules/skottie:skottie", 108*c8dee2aaSAndroid Build Coastguard Worker "../../modules/skresources:skresources", 109*c8dee2aaSAndroid Build Coastguard Worker "../../modules/sksg:sksg", 110*c8dee2aaSAndroid Build Coastguard Worker ] 111*c8dee2aaSAndroid Build Coastguard Worker } 112*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_include_viewer) { 113*c8dee2aaSAndroid Build Coastguard Worker deps += [ ":viewer_wasm" ] 114*c8dee2aaSAndroid Build Coastguard Worker } 115*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_enable_embedded_font) { 116*c8dee2aaSAndroid Build Coastguard Worker deps += [ ":create_notomono_cpp" ] 117*c8dee2aaSAndroid Build Coastguard Worker } 118*c8dee2aaSAndroid Build Coastguard Worker 119*c8dee2aaSAndroid Build Coastguard Worker sources = [ 120*c8dee2aaSAndroid Build Coastguard Worker "WasmCommon.h", 121*c8dee2aaSAndroid Build Coastguard Worker "canvaskit_bindings.cpp", 122*c8dee2aaSAndroid Build Coastguard Worker ] 123*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_enable_paragraph) { 124*c8dee2aaSAndroid Build Coastguard Worker sources += [ 125*c8dee2aaSAndroid Build Coastguard Worker "paragraph_bindings.cpp", 126*c8dee2aaSAndroid Build Coastguard Worker "paragraph_bindings_gen.cpp", 127*c8dee2aaSAndroid Build Coastguard Worker ] 128*c8dee2aaSAndroid Build Coastguard Worker } 129*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_skottie) { 130*c8dee2aaSAndroid Build Coastguard Worker sources += [ 131*c8dee2aaSAndroid Build Coastguard Worker "../../modules/skottie/utils/SkottieUtils.cpp", 132*c8dee2aaSAndroid Build Coastguard Worker "../../modules/skottie/utils/TextEditor.cpp", 133*c8dee2aaSAndroid Build Coastguard Worker "../../modules/skresources/src/SkResources.cpp", 134*c8dee2aaSAndroid Build Coastguard Worker "skottie_bindings.cpp", 135*c8dee2aaSAndroid Build Coastguard Worker ] 136*c8dee2aaSAndroid Build Coastguard Worker } 137*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_include_viewer) { 138*c8dee2aaSAndroid Build Coastguard Worker sources += [ "viewer_bindings.cpp" ] 139*c8dee2aaSAndroid Build Coastguard Worker # TODO(kjlubick): remove this 140*c8dee2aaSAndroid Build Coastguard Worker } 141*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_enable_debugger) { 142*c8dee2aaSAndroid Build Coastguard Worker sources += [ "debugger_bindings.cpp" ] 143*c8dee2aaSAndroid Build Coastguard Worker deps += [ ":debugger" ] 144*c8dee2aaSAndroid Build Coastguard Worker } 145*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_enable_embedded_font) { 146*c8dee2aaSAndroid Build Coastguard Worker sources += [ 147*c8dee2aaSAndroid Build Coastguard Worker "$root_out_dir/modules/canvaskit/fonts/NotoMono-Regular.ttf.ninja.cpp", 148*c8dee2aaSAndroid Build Coastguard Worker ] 149*c8dee2aaSAndroid Build Coastguard Worker } 150*c8dee2aaSAndroid Build Coastguard Worker 151*c8dee2aaSAndroid Build Coastguard Worker ldflags = [] 152*c8dee2aaSAndroid Build Coastguard Worker if (is_debug) { 153*c8dee2aaSAndroid Build Coastguard Worker ldflags += [ 154*c8dee2aaSAndroid Build Coastguard Worker "-O0", 155*c8dee2aaSAndroid Build Coastguard Worker "-sDEMANGLE_SUPPORT=1", 156*c8dee2aaSAndroid Build Coastguard Worker "-sASSERTIONS=1", 157*c8dee2aaSAndroid Build Coastguard Worker "-sGL_ASSERTIONS=1", 158*c8dee2aaSAndroid Build Coastguard Worker "-g3", 159*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 160*c8dee2aaSAndroid Build Coastguard Worker rebase_path("debug.js"), 161*c8dee2aaSAndroid Build Coastguard Worker ] 162*c8dee2aaSAndroid Build Coastguard Worker } else { 163*c8dee2aaSAndroid Build Coastguard Worker externs_path = rebase_path("externs.js") 164*c8dee2aaSAndroid Build Coastguard Worker ldflags += [ 165*c8dee2aaSAndroid Build Coastguard Worker "-Oz", 166*c8dee2aaSAndroid Build Coastguard Worker "--closure=1", 167*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 168*c8dee2aaSAndroid Build Coastguard Worker rebase_path("release.js"), 169*c8dee2aaSAndroid Build Coastguard Worker "--closure-args=--externs=$externs_path", 170*c8dee2aaSAndroid Build Coastguard Worker ] 171*c8dee2aaSAndroid Build Coastguard Worker } 172*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_profile_build) { 173*c8dee2aaSAndroid Build Coastguard Worker ldflags += [ 174*c8dee2aaSAndroid Build Coastguard Worker "--profiling-funcs", 175*c8dee2aaSAndroid Build Coastguard Worker "--closure=0", 176*c8dee2aaSAndroid Build Coastguard Worker ] 177*c8dee2aaSAndroid Build Coastguard Worker } 178*c8dee2aaSAndroid Build Coastguard Worker ldflags += [ "-fno-rtti" ] 179*c8dee2aaSAndroid Build Coastguard Worker 180*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_enable_webgpu) { 181*c8dee2aaSAndroid Build Coastguard Worker ldflags += [ 182*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 183*c8dee2aaSAndroid Build Coastguard Worker rebase_path("cpu.js"), 184*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 185*c8dee2aaSAndroid Build Coastguard Worker rebase_path("webgpu.js"), 186*c8dee2aaSAndroid Build Coastguard Worker "-sUSE_WEBGL2=0", 187*c8dee2aaSAndroid Build Coastguard Worker "-sUSE_WEBGPU=1", 188*c8dee2aaSAndroid Build Coastguard Worker "-sASYNCIFY", 189*c8dee2aaSAndroid Build Coastguard Worker 190*c8dee2aaSAndroid Build Coastguard Worker # Modules from html5_webgpu for JS<->WASM interop 191*c8dee2aaSAndroid Build Coastguard Worker "-sEXPORTED_RUNTIME_METHODS=WebGPU,JsValStore", 192*c8dee2aaSAndroid Build Coastguard Worker 193*c8dee2aaSAndroid Build Coastguard Worker # TODO(skia:13429): The closure compiler doesn't play well with optimized builds and ASYNCIFY. 194*c8dee2aaSAndroid Build Coastguard Worker "--closure=0", 195*c8dee2aaSAndroid Build Coastguard Worker ] 196*c8dee2aaSAndroid Build Coastguard Worker } else if (skia_canvaskit_enable_webgl) { 197*c8dee2aaSAndroid Build Coastguard Worker ldflags += [ 198*c8dee2aaSAndroid Build Coastguard Worker "-lGL", 199*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 200*c8dee2aaSAndroid Build Coastguard Worker rebase_path("cpu.js"), 201*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 202*c8dee2aaSAndroid Build Coastguard Worker rebase_path("webgl.js"), 203*c8dee2aaSAndroid Build Coastguard Worker "-sUSE_WEBGL2=1", 204*c8dee2aaSAndroid Build Coastguard Worker "-sMAX_WEBGL_VERSION=2", 205*c8dee2aaSAndroid Build Coastguard Worker ] 206*c8dee2aaSAndroid Build Coastguard Worker } else { 207*c8dee2aaSAndroid Build Coastguard Worker ldflags += [ 208*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 209*c8dee2aaSAndroid Build Coastguard Worker rebase_path("cpu.js"), 210*c8dee2aaSAndroid Build Coastguard Worker "-sUSE_WEBGL2=0", 211*c8dee2aaSAndroid Build Coastguard Worker ] 212*c8dee2aaSAndroid Build Coastguard Worker } 213*c8dee2aaSAndroid Build Coastguard Worker 214*c8dee2aaSAndroid Build Coastguard Worker ldflags += [ 215*c8dee2aaSAndroid Build Coastguard Worker "-std=c++17", 216*c8dee2aaSAndroid Build Coastguard Worker "--bind", 217*c8dee2aaSAndroid Build Coastguard Worker "--no-entry", 218*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 219*c8dee2aaSAndroid Build Coastguard Worker rebase_path("preamble.js"), 220*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 221*c8dee2aaSAndroid Build Coastguard Worker rebase_path("color.js"), 222*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 223*c8dee2aaSAndroid Build Coastguard Worker rebase_path("memory.js"), 224*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 225*c8dee2aaSAndroid Build Coastguard Worker rebase_path("util.js"), 226*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 227*c8dee2aaSAndroid Build Coastguard Worker rebase_path("interface.js"), 228*c8dee2aaSAndroid Build Coastguard Worker ] 229*c8dee2aaSAndroid Build Coastguard Worker 230*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_enable_matrix_helper) { 231*c8dee2aaSAndroid Build Coastguard Worker ldflags += [ 232*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 233*c8dee2aaSAndroid Build Coastguard Worker rebase_path("matrix.js"), 234*c8dee2aaSAndroid Build Coastguard Worker ] 235*c8dee2aaSAndroid Build Coastguard Worker } 236*c8dee2aaSAndroid Build Coastguard Worker 237*c8dee2aaSAndroid Build Coastguard Worker ldflags += [ 238*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 239*c8dee2aaSAndroid Build Coastguard Worker rebase_path("paragraph.js"), 240*c8dee2aaSAndroid Build Coastguard Worker ] 241*c8dee2aaSAndroid Build Coastguard Worker 242*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_skottie) { 243*c8dee2aaSAndroid Build Coastguard Worker ldflags += [ 244*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 245*c8dee2aaSAndroid Build Coastguard Worker rebase_path("skottie.js"), 246*c8dee2aaSAndroid Build Coastguard Worker ] 247*c8dee2aaSAndroid Build Coastguard Worker } 248*c8dee2aaSAndroid Build Coastguard Worker 249*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_enable_pathops) { 250*c8dee2aaSAndroid Build Coastguard Worker ldflags += [ 251*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 252*c8dee2aaSAndroid Build Coastguard Worker rebase_path("pathops.js"), 253*c8dee2aaSAndroid Build Coastguard Worker ] 254*c8dee2aaSAndroid Build Coastguard Worker } 255*c8dee2aaSAndroid Build Coastguard Worker 256*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_enable_font) { 257*c8dee2aaSAndroid Build Coastguard Worker ldflags += [ 258*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 259*c8dee2aaSAndroid Build Coastguard Worker rebase_path("font.js"), 260*c8dee2aaSAndroid Build Coastguard Worker ] 261*c8dee2aaSAndroid Build Coastguard Worker } 262*c8dee2aaSAndroid Build Coastguard Worker 263*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_enable_skp_serialization) { 264*c8dee2aaSAndroid Build Coastguard Worker ldflags += [ 265*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 266*c8dee2aaSAndroid Build Coastguard Worker rebase_path("skp.js"), 267*c8dee2aaSAndroid Build Coastguard Worker ] 268*c8dee2aaSAndroid Build Coastguard Worker } 269*c8dee2aaSAndroid Build Coastguard Worker 270*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_enable_rt_shader) { 271*c8dee2aaSAndroid Build Coastguard Worker ldflags += [ 272*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 273*c8dee2aaSAndroid Build Coastguard Worker rebase_path("rt_shader.js"), 274*c8dee2aaSAndroid Build Coastguard Worker ] 275*c8dee2aaSAndroid Build Coastguard Worker } 276*c8dee2aaSAndroid Build Coastguard Worker 277*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_enable_debugger) { 278*c8dee2aaSAndroid Build Coastguard Worker ldflags += [ 279*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 280*c8dee2aaSAndroid Build Coastguard Worker rebase_path("debugger.js"), 281*c8dee2aaSAndroid Build Coastguard Worker ] 282*c8dee2aaSAndroid Build Coastguard Worker } 283*c8dee2aaSAndroid Build Coastguard Worker 284*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_enable_canvas_bindings) { 285*c8dee2aaSAndroid Build Coastguard Worker ldflags += [ 286*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 287*c8dee2aaSAndroid Build Coastguard Worker rebase_path("htmlcanvas/preamble.js"), 288*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 289*c8dee2aaSAndroid Build Coastguard Worker rebase_path("htmlcanvas/util.js"), 290*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 291*c8dee2aaSAndroid Build Coastguard Worker rebase_path("htmlcanvas/color.js"), 292*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 293*c8dee2aaSAndroid Build Coastguard Worker rebase_path("htmlcanvas/font.js"), 294*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 295*c8dee2aaSAndroid Build Coastguard Worker rebase_path("htmlcanvas/canvas2dcontext.js"), 296*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 297*c8dee2aaSAndroid Build Coastguard Worker rebase_path("htmlcanvas/htmlcanvas.js"), 298*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 299*c8dee2aaSAndroid Build Coastguard Worker rebase_path("htmlcanvas/htmlimage.js"), 300*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 301*c8dee2aaSAndroid Build Coastguard Worker rebase_path("htmlcanvas/imagedata.js"), 302*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 303*c8dee2aaSAndroid Build Coastguard Worker rebase_path("htmlcanvas/lineargradient.js"), 304*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 305*c8dee2aaSAndroid Build Coastguard Worker rebase_path("htmlcanvas/path2d.js"), 306*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 307*c8dee2aaSAndroid Build Coastguard Worker rebase_path("htmlcanvas/pattern.js"), 308*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 309*c8dee2aaSAndroid Build Coastguard Worker rebase_path("htmlcanvas/radialgradient.js"), 310*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 311*c8dee2aaSAndroid Build Coastguard Worker rebase_path("htmlcanvas/postamble.js"), 312*c8dee2aaSAndroid Build Coastguard Worker ] 313*c8dee2aaSAndroid Build Coastguard Worker } 314*c8dee2aaSAndroid Build Coastguard Worker 315*c8dee2aaSAndroid Build Coastguard Worker ldflags += [ 316*c8dee2aaSAndroid Build Coastguard Worker "--pre-js", 317*c8dee2aaSAndroid Build Coastguard Worker rebase_path("postamble.js"), 318*c8dee2aaSAndroid Build Coastguard Worker "-sALLOW_MEMORY_GROWTH", 319*c8dee2aaSAndroid Build Coastguard Worker "-sDISABLE_EXCEPTION_CATCHING", 320*c8dee2aaSAndroid Build Coastguard Worker "-sNODEJS_CATCH_EXIT=0", 321*c8dee2aaSAndroid Build Coastguard Worker "-sDYNAMIC_EXECUTION=0", 322*c8dee2aaSAndroid Build Coastguard Worker "-sEXPORT_NAME=CanvasKitInit", 323*c8dee2aaSAndroid Build Coastguard Worker "-sEXPORTED_FUNCTIONS=[_malloc,_free]", 324*c8dee2aaSAndroid Build Coastguard Worker "-sFORCE_FILESYSTEM=0", 325*c8dee2aaSAndroid Build Coastguard Worker "-sFILESYSTEM=0", 326*c8dee2aaSAndroid Build Coastguard Worker "-sMODULARIZE", 327*c8dee2aaSAndroid Build Coastguard Worker "-sNO_EXIT_RUNTIME=1", 328*c8dee2aaSAndroid Build Coastguard Worker "-sINITIAL_MEMORY=128MB", 329*c8dee2aaSAndroid Build Coastguard Worker "-sWASM", 330*c8dee2aaSAndroid Build Coastguard Worker "-sSTRICT=1", 331*c8dee2aaSAndroid Build Coastguard Worker ] 332*c8dee2aaSAndroid Build Coastguard Worker 333*c8dee2aaSAndroid Build Coastguard Worker defines = [ 334*c8dee2aaSAndroid Build Coastguard Worker "SK_FORCE_8_BYTE_ALIGNMENT", 335*c8dee2aaSAndroid Build Coastguard Worker "EMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0", 336*c8dee2aaSAndroid Build Coastguard Worker "SK_DISABLE_LEGACY_PARAGRAPH_UNICODE=1", 337*c8dee2aaSAndroid Build Coastguard Worker ] 338*c8dee2aaSAndroid Build Coastguard Worker if (is_debug) { 339*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_DEBUG" ] 340*c8dee2aaSAndroid Build Coastguard Worker } else { 341*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_RELEASE" ] 342*c8dee2aaSAndroid Build Coastguard Worker } 343*c8dee2aaSAndroid Build Coastguard Worker if (!is_debug && !skia_canvaskit_force_tracing) { 344*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_DISABLE_TRACING" ] 345*c8dee2aaSAndroid Build Coastguard Worker } 346*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_enable_embedded_font) { 347*c8dee2aaSAndroid Build Coastguard Worker defines += [ "CK_EMBED_FONT" ] 348*c8dee2aaSAndroid Build Coastguard Worker } 349*c8dee2aaSAndroid Build Coastguard Worker if (skia_use_icu && skia_use_harfbuzz) { 350*c8dee2aaSAndroid Build Coastguard Worker deps += [ 351*c8dee2aaSAndroid Build Coastguard Worker "../../modules/skshaper", 352*c8dee2aaSAndroid Build Coastguard Worker "../../modules/skunicode", 353*c8dee2aaSAndroid Build Coastguard Worker ] 354*c8dee2aaSAndroid Build Coastguard Worker } 355*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_enable_paragraph) { 356*c8dee2aaSAndroid Build Coastguard Worker defines += [ "CK_INCLUDE_PARAGRAPH" ] 357*c8dee2aaSAndroid Build Coastguard Worker } 358*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_enable_skp_serialization) { 359*c8dee2aaSAndroid Build Coastguard Worker defines += [ "CK_SERIALIZE_SKP" ] 360*c8dee2aaSAndroid Build Coastguard Worker } 361*c8dee2aaSAndroid Build Coastguard Worker if (skia_enable_ganesh) { 362*c8dee2aaSAndroid Build Coastguard Worker defines += [ 363*c8dee2aaSAndroid Build Coastguard Worker "SK_GANESH", 364*c8dee2aaSAndroid Build Coastguard Worker "SK_DISABLE_LEGACY_SHADERCONTEXT", 365*c8dee2aaSAndroid Build Coastguard Worker ] 366*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_enable_webgl) { 367*c8dee2aaSAndroid Build Coastguard Worker defines += [ 368*c8dee2aaSAndroid Build Coastguard Worker "SK_GL", 369*c8dee2aaSAndroid Build Coastguard Worker "CK_ENABLE_WEBGL", 370*c8dee2aaSAndroid Build Coastguard Worker ] 371*c8dee2aaSAndroid Build Coastguard Worker } 372*c8dee2aaSAndroid Build Coastguard Worker } 373*c8dee2aaSAndroid Build Coastguard Worker 374*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_enable_pathops) { 375*c8dee2aaSAndroid Build Coastguard Worker defines += [ "CK_INCLUDE_PATHOPS" ] 376*c8dee2aaSAndroid Build Coastguard Worker } 377*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_enable_rt_shader) { 378*c8dee2aaSAndroid Build Coastguard Worker defines += [ "CK_INCLUDE_RUNTIME_EFFECT" ] 379*c8dee2aaSAndroid Build Coastguard Worker } 380*c8dee2aaSAndroid Build Coastguard Worker if (!skia_canvaskit_enable_alias_font) { 381*c8dee2aaSAndroid Build Coastguard Worker defines += [ "CK_NO_ALIAS_FONT" ] 382*c8dee2aaSAndroid Build Coastguard Worker } 383*c8dee2aaSAndroid Build Coastguard Worker if (skia_canvaskit_legacy_draw_vertices_blend_mode) { 384*c8dee2aaSAndroid Build Coastguard Worker # https://github.com/flutter/flutter/issues/98531 385*c8dee2aaSAndroid Build Coastguard Worker defines += [ "SK_LEGACY_IGNORE_DRAW_VERTICES_BLEND_WITH_NO_SHADER" ] 386*c8dee2aaSAndroid Build Coastguard Worker } 387*c8dee2aaSAndroid Build Coastguard Worker if (!skia_canvaskit_enable_font) { 388*c8dee2aaSAndroid Build Coastguard Worker defines += [ "CK_NO_FONTS" ] 389*c8dee2aaSAndroid Build Coastguard Worker } 390*c8dee2aaSAndroid Build Coastguard Worker} 391