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

import("//build/fidl/fidl.gni")

fidl("fidl.test.typealiases") {
  testonly = true
  sources = [ "example.test.fidl" ]
  public_deps = [ ":someotherlibrary" ]
  host_llcpp = true
}

fidl("fidl.test.experimentalmaybefromtypealias") {
  testonly = true
  sources = [ "experimental_maybe_from_type_alias.test.fidl" ]
  host_llcpp = true
}

fidl("someotherlibrary") {
  testonly = true
  sources = [ "someotherlibrary.test.fidl" ]
  host_llcpp = true
}
