# 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_FORCE_8_BYTE_ALIGNMENT", ] if (!is_debug && !skia_canvaskit_force_tracing) { wasm_defines += [ "SK_DISABLE_TRACING" ] } if (skia_enable_ganesh) { 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" ] }