xref: /aosp_15_r20/external/skia/gn/toolchain/wasm.gni (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
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