# Copyright 2013 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("//flutter/common/config.gni")

source_set("base") {
  visibility = [ "//flutter/third_party/accessibility/*" ]
  include_dirs = [ "//flutter/third_party/accessibility" ]

  sources = [
    "auto_reset.h",
    "color_utils.h",
    "compiler_specific.h",
    "container_utils.h",
    "logging.cc",
    "logging.h",
    "macros.h",
    "no_destructor.h",
    "simple_token.cc",
    "simple_token.h",
    "string_utils.cc",
    "string_utils.h",
  ]
  if (is_win) {
    # TODO: codecvt_utf8_utf16 is deprecated in C++17
    defines = [ "_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS" ]
  }
  if (is_mac) {
    sources += [
      "platform/darwin/scoped_nsobject.h",
      "platform/darwin/scoped_nsobject.mm",
    ]
  }

  public_deps = [
    "numerics",
    "//flutter/third_party/accessibility/ax_build",
  ]
}
