# FIDL


[FIDL targets][fidl] 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";
```


## Known issues

### Multiple FIDL targets in a single BUILD file

If two FIDL targets coexist in a single BUILD file:

* their respective, generated files will currently be placed in the same
  subdirectory of the output directory.  This means that files belonging to one
  target will be available to clients of the other target, and this will likely
  confuse the analyzer.  This should not be a build issue now but could become
  one once the generated Dart files are placed in separate directories if
  clients do not correctly set up their dependencies.
* depending on one of these targets from *another* FIDL target that is used by
  a Dart package leads to a `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.


[fidl]: /build/fidl/fidl.gni "FIDL"
