# Copyright 2014 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("ots_config") {
  include_dirs = [ "include" ]
}

source_set("ots") {
  sources = [
    "include/ots-memory-stream.h",
    "include/opentype-sanitiser.h",
    "src/cbdt.cc",
    "src/cbdt.h",
    "src/cblc.cc",
    "src/cblc.h",
    "src/cff.cc",
    "src/cff.h",
    "src/cff_type2_charstring.cc",
    "src/cff_type2_charstring.h",
    "src/cmap.cc",
    "src/cmap.h",
    "src/cvt.cc",
    "src/cvt.h",
    "src/fpgm.cc",
    "src/fpgm.h",
    "src/gasp.cc",
    "src/gasp.h",
    "src/gdef.cc",
    "src/gdef.h",
    "src/glyf.cc",
    "src/glyf.h",
    "src/gpos.cc",
    "src/gpos.h",
    "src/gsub.cc",
    "src/gsub.h",
    "src/hdmx.cc",
    "src/hdmx.h",
    "src/head.cc",
    "src/head.h",
    "src/hhea.cc",
    "src/hhea.h",
    "src/hmtx.cc",
    "src/hmtx.h",
    "src/kern.cc",
    "src/kern.h",
    "src/layout.cc",
    "src/layout.h",
    "src/loca.cc",
    "src/loca.h",
    "src/ltsh.cc",
    "src/ltsh.h",
    "src/maxp.cc",
    "src/maxp.h",
    "src/math.cc",
    "src/math_.h",
    "src/metrics.cc",
    "src/metrics.h",
    "src/name.cc",
    "src/name.h",
    "src/os2.cc",
    "src/os2.h",
    "src/ots.cc",
    "src/ots.h",
    "src/post.cc",
    "src/post.h",
    "src/prep.cc",
    "src/prep.h",
    "src/vdmx.cc",
    "src/vdmx.h",
    "src/vhea.cc",
    "src/vhea.h",
    "src/vmtx.cc",
    "src/vmtx.h",
    "src/vorg.cc",
    "src/vorg.h",
    "src/woff2.cc",
    "src/woff2.h",
  ]

  direct_dependent_configs = [ ":ots_config" ]

  deps = [
    "//third_party/brotli",
    "//third_party/zlib",
  ]

  if (is_win) {
    cflags = [
      "/wd4267",  # Conversion from size_t to 'type'.
      "/wd4334",  # 32-bit shift implicitly converted to 64-bits.
    ]
  }
}
