FIDL targets generate implicit Dart bindings targets. To use the bindings generated for:
//foo/bar //foo/bar:blah
add a dependency on:
//foo/bar:bar_dart //foo/bar:blah_dart
and import the resulting Dart sources with:
import "package:foo.bar/baz.dart"; import "package:foo.bar..blah/baz.dart";
If two FIDL targets coexist in a single BUILD file:
Unable to read Dart source ...
error. The bindings generator for FIDL builds Dart package names based on the directory structure containing the included FIDL file, while GN (used to compute dependencies for the Dart package) does so using the full GN target name. For example: depending on lib/foo/fidl:bar
generates a package like lib.foo.fidl._bar
. Depending on the top-level target lib/foo/fidl
generates the package lib.foo.fidl
, which coincides with the Dart FIDL binding's assumptions.