1*c8dee2aaSAndroid Build Coastguard Worker# Copyright (c) 2022 The Chromium Authors. All rights reserved. 2*c8dee2aaSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 3*c8dee2aaSAndroid Build Coastguard Worker# found in the LICENSE file. 4*c8dee2aaSAndroid Build Coastguard Worker 5*c8dee2aaSAndroid Build Coastguard Workerimport("../../modules/canvaskit/canvaskit.gni") 6*c8dee2aaSAndroid Build Coastguard Worker 7*c8dee2aaSAndroid Build Coastguard Worker# Defines the configuration of emscripten for building WASM targets. 8*c8dee2aaSAndroid Build Coastguard Workerimport("../skia.gni") 9*c8dee2aaSAndroid Build Coastguard Workerdeclare_args() { 10*c8dee2aaSAndroid Build Coastguard Worker # The location of an activated emsdk. We default to the one brought in by 11*c8dee2aaSAndroid Build Coastguard Worker # DEPS and bin/activate-emsdk. 12*c8dee2aaSAndroid Build Coastguard Worker skia_emsdk_dir = rebase_path("../../third_party/externals/emsdk") 13*c8dee2aaSAndroid Build Coastguard Worker} 14*c8dee2aaSAndroid Build Coastguard Worker 15*c8dee2aaSAndroid Build Coastguard Worker# Defines a WASM library target. 16*c8dee2aaSAndroid Build Coastguard Workertemplate("skia_wasm_lib") { 17*c8dee2aaSAndroid Build Coastguard Worker _vars_to_forward = [ 18*c8dee2aaSAndroid Build Coastguard Worker "cflags", 19*c8dee2aaSAndroid Build Coastguard Worker "ldflags", 20*c8dee2aaSAndroid Build Coastguard Worker "defines", 21*c8dee2aaSAndroid Build Coastguard Worker "deps", 22*c8dee2aaSAndroid Build Coastguard Worker "includes", 23*c8dee2aaSAndroid Build Coastguard Worker "sources", 24*c8dee2aaSAndroid Build Coastguard Worker "include_dirs", 25*c8dee2aaSAndroid Build Coastguard Worker "public_configs", 26*c8dee2aaSAndroid Build Coastguard Worker "testonly", 27*c8dee2aaSAndroid Build Coastguard Worker "visibility", 28*c8dee2aaSAndroid Build Coastguard Worker ] 29*c8dee2aaSAndroid Build Coastguard Worker 30*c8dee2aaSAndroid Build Coastguard Worker _lib_name = target_name 31*c8dee2aaSAndroid Build Coastguard Worker 32*c8dee2aaSAndroid Build Coastguard Worker executable("${_lib_name}_js") { 33*c8dee2aaSAndroid Build Coastguard Worker forward_variables_from(invoker, _vars_to_forward) 34*c8dee2aaSAndroid Build Coastguard Worker output_extension = "js" 35*c8dee2aaSAndroid Build Coastguard Worker output_name = "${_lib_name}" 36*c8dee2aaSAndroid Build Coastguard Worker } 37*c8dee2aaSAndroid Build Coastguard Worker 38*c8dee2aaSAndroid Build Coastguard Worker group("$_lib_name") { 39*c8dee2aaSAndroid Build Coastguard Worker public_deps = [ ":${_lib_name}_js" ] 40*c8dee2aaSAndroid Build Coastguard Worker } 41*c8dee2aaSAndroid Build Coastguard Worker} 42*c8dee2aaSAndroid Build Coastguard Worker 43*c8dee2aaSAndroid Build Coastguard Workerwasm_defines = [ 44*c8dee2aaSAndroid Build Coastguard Worker "SKNX_NO_SIMD", 45*c8dee2aaSAndroid Build Coastguard Worker "SK_FORCE_8_BYTE_ALIGNMENT", 46*c8dee2aaSAndroid Build Coastguard Worker] 47*c8dee2aaSAndroid Build Coastguard Worker 48*c8dee2aaSAndroid Build Coastguard Workerif (!is_debug && !skia_canvaskit_force_tracing) { 49*c8dee2aaSAndroid Build Coastguard Worker wasm_defines += [ "SK_DISABLE_TRACING" ] 50*c8dee2aaSAndroid Build Coastguard Worker} 51*c8dee2aaSAndroid Build Coastguard Worker 52*c8dee2aaSAndroid Build Coastguard Workerif (skia_enable_ganesh) { 53*c8dee2aaSAndroid Build Coastguard Worker wasm_defines += [ "SK_DISABLE_LEGACY_SHADERCONTEXT" ] 54*c8dee2aaSAndroid Build Coastguard Worker} 55*c8dee2aaSAndroid Build Coastguard Worker 56*c8dee2aaSAndroid Build Coastguard Workerif (!skia_canvaskit_enable_effects_deserialization || 57*c8dee2aaSAndroid Build Coastguard Worker !skia_canvaskit_enable_skp_serialization) { 58*c8dee2aaSAndroid Build Coastguard Worker wasm_defines += [ "SK_DISABLE_EFFECT_DESERIALIZATION" ] 59*c8dee2aaSAndroid Build Coastguard Worker} 60*c8dee2aaSAndroid Build Coastguard Worker 61*c8dee2aaSAndroid Build Coastguard Workerif (!skia_canvaskit_enable_alias_font) { 62*c8dee2aaSAndroid Build Coastguard Worker wasm_defines += [ "CANVASKIT_NO_ALIAS_FONT" ] 63*c8dee2aaSAndroid Build Coastguard Worker} 64