| # Copyright (c) 2022 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("../../modules/canvaskit/canvaskit.gni") |
| |
| # Defines the configuration of emscripten for building WASM targets. |
| import("../skia.gni") |
| declare_args() { |
| # The location of an activated emsdk. We default to the one brought in by |
| # DEPS and bin/activate-emsdk. |
| skia_emsdk_dir = rebase_path("../../third_party/externals/emsdk") |
| } |
| |
| # Defines a WASM library target. |
| template("skia_wasm_lib") { |
| _vars_to_forward = [ |
| "cflags", |
| "ldflags", |
| "defines", |
| "deps", |
| "includes", |
| "sources", |
| "include_dirs", |
| "public_configs", |
| "testonly", |
| "visibility", |
| ] |
| |
| _lib_name = target_name |
| |
| executable("${_lib_name}_js") { |
| forward_variables_from(invoker, _vars_to_forward) |
| output_extension = "js" |
| output_name = "${_lib_name}" |
| } |
| |
| group("$_lib_name") { |
| public_deps = [ ":${_lib_name}_js" ] |
| } |
| } |
| |
| wasm_defines = [ |
| "SKNX_NO_SIMD", |
| "SK_DISABLE_AAA", |
| "SK_FORCE_8_BYTE_ALIGNMENT", |
| ] |
| |
| if (!is_debug && !skia_canvaskit_force_tracing) { |
| wasm_defines += [ "SK_DISABLE_TRACING" ] |
| } |
| |
| if (skia_enable_gpu) { |
| wasm_defines += [ "SK_DISABLE_LEGACY_SHADERCONTEXT" ] |
| } |
| |
| if (!skia_canvaskit_enable_effects_deserialization || |
| !skia_canvaskit_enable_skp_serialization) { |
| wasm_defines += [ "SK_DISABLE_EFFECT_DESERIALIZATION" ] |
| } |
| |
| if (!skia_canvaskit_enable_alias_font) { |
| wasm_defines += [ "CANVASKIT_NO_ALIAS_FONT" ] |
| } |