# Copyright 2018 The Fuchsia 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("//build/go/toolchain.gni")
import("//build/toolchain/basic_toolchain.gni")

if (current_toolchain == default_toolchain) {
  # A toolchain dedicated to processing Go code.
  # The only targets in this toolchain are action() targets, so it
  # has no real tools.  But every toolchain needs stamp and copy.
  basic_toolchain("gopher") {
    expected_label = go_toolchain
  }
}

group("globbing_allowlist") {
  #  ________  _________  ________  ________
  # |\   ____\|\___   ___\\   __  \|\   __  \
  # \ \  \___|\|___ \  \_\ \  \|\  \ \  \|\  \
  #  \ \_____  \   \ \  \ \ \  \\\  \ \   ____\
  #   \|____|\  \   \ \  \ \ \  \\\  \ \  \___|
  #     ____\_\  \   \ \__\ \ \_______\ \__\
  #    |\_________\   \|__|  \|_______|\|__|
  #    \|_________|
  # This is an allowlist of packages that do not enforce that the source files
  # are listed in `sources`. This is only intended to be used for third-party
  # libraries.
  visibility = [
    "//src/testing/fuzzing/syzkaller:syzkaller-go",
    "//third_party/go:*",
    "//third_party/go/makefuchsia:*",
    "//third_party/go/makeroot:*",
    "//third_party/golibs:*",
  ]
}
