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

# optimize_target_for_speed

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",
  ]

  public_configs = [ ":woff2_includes" ]

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

