# 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) {
    sources += [
      "win/atl.h",
      "win/atl_module.h",
      "win/enum_variant.cc",
      "win/enum_variant.h",
      "win/scoped_bstr.cc",
      "win/scoped_bstr.h",
      "win/scoped_safearray.h",
      "win/scoped_variant.cc",
      "win/scoped_variant.h",
      "win/string_conversion.cc",
      "win/string_conversion.h",
      "win/variant_util.h",
      "win/variant_vector.cc",
      "win/variant_vector.h",
    ]
    libs = [ "propsys.lib" ]
  }
  if (is_mac) {
    sources += [
      "platform/darwin/scoped_nsobject.h",
      "platform/darwin/scoped_nsobject.mm",
    ]
  }

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