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

group("fidl") {
  testonly = true

  public_deps = [
    ":fidl-lint",
    ":fidlfmt",
    "fidl_api_diff:host",
    "fidl_api_summarize:host",
    "fidlc:host",
    "fidlcparsequality:host",
    "fidldoc($host_toolchain)",
    "fidlgen_cpp:host",
    "fidlgen_dart:host",
    "fidlgen_go:host",
    "fidlgen_hlcpp:host",
    "fidlgen_libfuzzer:host",
    "fidlgen_llcpp:host",
    "fidlgen_rust:host",
    "fidlgen_syzkaller:host",
    "fidlmerge:host",
    "gidl:host",
    "lib",
    "measure-tape/src:host",
  ]
}

group("fidlfmt") {
  if (current_os != "fuchsia") {
    deps = [ "fidlc:fidl-format" ]
  }
}

group("fidl-lint") {
  if (current_os != "fuchsia") {
    deps = [ "fidlc:fidl-lint" ]
  }
}

group("tests") {
  testonly = true

  deps = [
    "fidl_api_diff:tests",
    "fidl_api_summarize:tests",
    "fidlc:tests",
    "fidldoc:tests",
    "fidlgen_cpp:tests",
    "fidlgen_dart:tests",
    "fidlgen_go:tests",
    "fidlgen_hlcpp:tests",
    "fidlgen_libfuzzer:tests",
    "fidlgen_llcpp:tests",
    "fidlgen_rust:tests",
    "fidlgen_syzkaller:tests",
    "gidl:tests",
    "lib:tests",
    "measure-tape:tests",
  ]
}
