# 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/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.
    ]
  }
}
