Reland "[idk][build] Build less for the in-tree IDK"

This is a reland of commit 00527f7a7c9582805fb5fa860266da56631e7060

This version temporarily adds a dependency a non-SDK dependency on the
reduced "core" collection to the in-tree IDK so that the core manifest
is always generated at the same time as the in-tree IDK. This will allow
these dependencies to be eliminated separately without blocking this
large refactor.

Original change's description:
> [idk][build] Build less for the in-tree IDK
>
> Create separate IDK build graphs for the IDK used in-tree (by the Bazel
> in-tree SDK and ffx tests) and the official IDK distributed to partners.
> This decreases the build graph for most developers.
>
> "//sdk:bazel_in_tree_idk" and "//sdk:sdk" now depend on the in-tree
> graph. This avoids building unneeded targets when, for example,
> assembling with the Bazel SDK.
>
> "final_fuchsia_idk.exported" depends on the complete IDK graph, which is
> now called "fuchsia".
>
> The template named "idk_rules" implements the common logic for the two
> graphs, which provide the specific targets to include when instantiating
> the template.
>
> Remove ":sdk_source_set_list" from "//sdk" since it is already a direct
> dependency of "//:api" and would otherwise pull in the full IDK.
>
> The same set of host tools are included in a default build, but tools
> not needed as part of the SDK build are not included in the in-tree IDK.
> This allows these tools to be built in parallel with targets that depend
> on the IDK and SDK.
>
> Also partially fix the dependency checking that triggers sub-build
> rebuilds by adding a non-SDK deps in the main build on targets that are
> produced for the IDK only in sub-builds. Packages are the remaining gap.
>
> Bug: 393154095
> Change-Id: I6375869c3d1a2be082efe5fe0b57ea73ce1c31cc
> Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1198649
> Reviewed-by: Clayton Wilkinson <wilkinsonclay@google.com>
> Reviewed-by: David Turner <digit@google.com>
> Commit-Queue: David Dorwin <ddorwin@google.com>

Bug: 393154095
Change-Id: I10b5ff59008e72d40e9ea73ea870ad3479aa42bb
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1221230
Commit-Queue: David Dorwin <ddorwin@google.com>
Reviewed-by: Clayton Wilkinson <wilkinsonclay@google.com>
Reviewed-by: David Turner <digit@google.com>
3 files changed
tree: df94db2e45a75abbd50895c6396bb8d25b663e45
  1. .helix/
  2. boards/
  3. build/
  4. bundles/
  5. docs/
  6. examples/
  7. infra/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .editorconfig
  18. .git-blame-ignore-revs
  19. .gitattributes
  20. .gitignore
  21. .gitmodules
  22. .gn
  23. .ignore
  24. analysis_options.yaml
  25. AUTHORS
  26. BUILD.gn
  27. CODE_OF_CONDUCT.md
  28. CONTRIBUTING.md
  29. fuchsia.code-workspace
  30. LICENSE
  31. OWNERS
  32. PATENTS
  33. pyproject.toml
  34. pyrightconfig.json
  35. README.md
  36. rustfmt.toml
  37. shac.star
  38. shac.textproto
README.md

Fuchsia

What is Fuchsia?

Fuchsia is an open source, general purpose operating system supporting modern 64-bit Intel and ARM processors.

We expect everyone interacting with our project to respect our code of conduct.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.