# Copyright 2019 The Flutter 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("//build/toolchain/wasm.gni")

wasm_lib("skwasm") {
  sources = [
    "canvas.cpp",
    "contour_measure.cpp",
    "export.h",
    "helpers.h",
    "paint.cpp",
    "path.cpp",
    "picture.cpp",
    "shaders.cpp",
    "surface.cpp",
    "wrappers.h",
  ]

  ldflags = [
    "-std=c++20",
    "-lGL",
    "-sUSE_WEBGL2=1",
    "-sMAX_WEBGL_VERSION=2",
    "-sOFFSCREENCANVAS_SUPPORT",
    "-sPTHREAD_POOL_SIZE=1",
    "-sALLOW_MEMORY_GROWTH",
    "-sALLOW_TABLE_GROWTH",
    "-sUSE_PTHREADS=1",
    "-lexports.js",
    "-sEXPORTED_FUNCTIONS=[stackAlloc]",
    "-sEXPORTED_RUNTIME_METHODS=[addFunction,removeFunction]",
  ]

  if (is_debug) {
    ldflags += [
      "-sDEMANGLE_SUPPORT=1",
      "-sASSERTIONS=1",
      "-sGL_ASSERTIONS=1",
    ]
  } else {
    ldflags += [
      "-Oz",
      "--closure=1",
    ]
  }

  deps = [ "//third_party/skia" ]
}
