blob: fb1e396abfa0564a228475c7b1ee47fb093b8b8e [file] [log] [blame]
# 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("*")
}
}