blob: 8baba8b3cd85eff2dc5454f7dcebd67623741fd4 [file] [view]
## Generated FIDL Low-Level C++ Bindings
Because of BLD-427 and BLD-353 blocking invoking `fidlgen` from the zircon
build, we intend to check in copies of llcpp bindings for select FIDL libraries,
as a workaround, to support limited use of llcpp.
Each checked in library can be referenced similar to the C bindings, e.g.
whereas one would write `"$zx/system/fidl/fuchsia-mem:c"` to get the
auto-generated C FIDL bindings, the llcpp version is
`"$zx/system/fidl/fuchsia-mem:llcpp"`.
When using it in source code, whereas one would write
`#include <fuchsia/mem/c/fidl.h>` to import the C bindings header,
the corresponding llcpp directive would be
`#include <fuchsia/mem/llcpp/fidl.h>`.
To regenerate all the bindings, simply run the following command:
```bash
fx build -k 0 tools/fidlgen_llcpp_zircon:update
```
The `-k 0` switches would keep the build going even if parts of zircon failed to
build. The actual generation happens in the Fuchsia build phase, so you may use
`Ctrl-C` to cancel the zircon phase while it is running, to move on to code
generation more quickly.
Note: GN makes heavy use of incremental builds based on file modification
times. If you switched branches and noticed that some generated bindings are
not updated properly (ninja printing `No work to do`), make sure the FIDL
definitions are newer than the checked in bindings, by modifying them or
running `touch`.
As an extra precaution measure, the full build will validate that the generated
bindings are up to date. You can manually run the same check with the following
command:
```bash
fx build tools/fidlgen_llcpp_zircon:validate
```