[build][scripts] Integrate Zircon via new GN build rather than old make build

build-zircon.sh and thus `fx build-zircon` now runs gn (if necessary) and
ninja (just once) rather than running `make` several times.  The extra
arguments previously taken as make arguments are now taken as either GN
build arguments or ninja arguments.

`fx set` now runs Zircon's `gn gen` before Fuchsia's `gn gen`, which
consumes files generated by the former.

Zircon-related GN build arguments are gone.  Zircon configuration
can be controlled via arguments to build-zircon.sh instead.

Note this also means that `zircon_boot_groups="all"` behavior is now
always on.  That is, the BOOTFS in the Fuchsia boot images will be
fatter and contain all of the Zircon tools and tests in `/boot`.
Zircon tests now appear in `/boot/test` rather than `/system/test`.

Bug: BLD-325 #comment Fuchsia GN integration adapted to Zircon GN legacy support
Test: manual
Change-Id: I6e0b49b65c78a27e71078d32e40d0b22d366d666
18 files changed
tree: 11bec342e42b41f806ed3e24283d6a49d89f8e07
  1. .cargo/
  2. boards/
  3. build/
  4. buildtools/
  5. bundles/
  6. docs/
  7. garnet/
  8. peridot/
  9. products/
  10. scripts/
  11. sdk/
  12. src/
  13. zircon/
  14. .clang-format
  15. .dir-locals.el
  16. .gitattributes
  17. .gitignore
  18. .gn
  19. AUTHORS
  20. CODE_OF_CONDUCT.md
  21. CONTRIBUTING.md
  22. LICENSE
  23. OWNERS
  24. PATENTS
  25. README.md
  26. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See the documentation.