# Copyright 2015 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.

config("woff2_includes") {
  include_dirs = [ "include" ]
}

static_library("woff2_dec") {
  sources = [
    "src/buffer.h",
    "src/file.h",
    "src/round.h",
    "src/store_bytes.h",
    "src/table_tags.cc",
    "src/table_tags.h",
    "src/variable_length.cc",
    "src/variable_length.h",
    "src/woff2_common.cc",
    "src/woff2_common.h",
    "src/woff2_dec.cc",
    "src/woff2_out.cc",
    "include/woff2/decode.h",
    "include/woff2/encode.h",
    "include/woff2/output.h",
  ]
  deps = [
    "//starboard/common",
    "//third_party/brotli:dec",
  ]

  if (is_starboard) {
    configs -= [ "//starboard/build/config:size" ]
    configs += [ "//starboard/build/config:speed" ]
  }

  public_configs = [ ":woff2_includes" ]

  # TODO(ksakamoto): http://crbug.com/167187
  if (is_win) {
    cflags = [ "/wd4267" ]  # Conversion from size_t to 'type'.
  }
}

