# 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") {
  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_rust:host",
    "fidlgen_syzkaller:host",
    "fidlmerge:host",
    "gidl:host",
    "gidl-format: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_rust:tests",
    "fidlgen_syzkaller:tests",
    "gidl:tests",
    "gidl-format:tests",
    "lib:tests",
    "measure-tape:tests",
  ]
}
