# Copyright 2013 The Flutter 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/fuchsia/sdk.gni") import("//flutter/tools/fuchsia/dart/toolchain.gni") import("//flutter/tools/fuchsia/fidl/toolchain.gni") # Declares a FIDL library. # # Depending on the toolchain in which this targets is expanded, it will yield # different results: # - in the FIDL toolchain, it will compile its source files into an # intermediate representation consumable by language bindings generators; # - in the target or shared toolchain, this will produce a source_set # containing language-specific bindings. template("fidl") { # Allow generated targets visibility to their dependant generated targets if (defined(invoker.visibility)) { invoker.visibility += [ ":*" ] } assert(!defined(invoker.deps), "All FIDL dependencies are inherently " + "public, use 'public_deps' instead of 'deps'.") if (current_toolchain == dart_toolchain) { import("//flutter/tools/fuchsia/dart/fidl_dart.gni") not_needed(invoker, [ "meta" ]) fidl_dart(target_name) { forward_variables_from(invoker, "*") } } else if (current_toolchain == fidl_toolchain) { import("//flutter/tools/fuchsia/fidl/fidl_library.gni") not_needed(invoker, [ "meta" ]) fidl_library(target_name) { forward_variables_from(invoker, "*") } } else if (current_toolchain == default_toolchain) { not_needed(invoker, [ "name", "sources", ]) fuchsia_fidl_library(target_name) { forward_variables_from(invoker, "*") } } else { not_needed("*") } }