# Copyright 2023 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.

# Compiled tools that are depended on by shac checks under //scripts/shac.
group("shac_tools") {
  testonly = true
  deps = [
    "//build/tools/formatjson5:formatjson5.actual($host_toolchain)",
    "//tools/cmc:cmc.actual($host_toolchain)",
    "//tools/doc_checker:doc_checker_bin.actual($host_toolchain)",
    "//tools/fidl/fidlc:fidl-format($host_toolchain)",
    "//tools/fidl/fidlc:fidl-lint($host_toolchain)",
    "//tools/fidl/gidl-format:gidl-format($host_toolchain)",
    "//tools/mdlint:mdlint($host_toolchain)",
    "//tools/staticanalysis/clippy-reporter:clippy-reporter($host_toolchain)",
    "//tools/staticanalysis/rfcmeta:rfcmeta($host_toolchain)",
  ]
}
