[build] Fixing hermetic deps in fidlc

Fixed detection of hermetic deps issue by creating a dep_file in fidlc.
Currently, the action which launches fidlc reads from some files which
are not its inputs, and can't be added as inputs as the files are not
known at gen time.  For such cases, tools like fidlc should generate a
dep file mapping their outputs to list-of-inputs, so that build system
can check for individual action's hermeticity. The fidlc works
incrementally correctly without this change, but build system can't
check that.

Updated gen_response_file to add depfile related arguments in the
response file.
Removed hermetic_deps suppression.

See:
https://fuchsia.dev/fuchsia-src/development/build/hermetic_actions?hl=en
https://fuchsia.dev/fuchsia-src/contribute/open_projects/build/hermetic_actions?hl=en

After this change we continuously verify that fidlc invocations are incrementally correct.

Bug: 74204

Change-Id: Ia06d1a7fa8d4f3af9ee3c81562cbcb7fb0815e83
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/513027
Commit-Queue: Shai Barack <shayba@google.com>
Reviewed-by: Shai Barack <shayba@google.com>
Reviewed-by: Pascal Perez <pascallouis@google.com>
3 files changed
tree: 20ccf73df70592325e7988dbc388caa9e51f619d
  1. .clang-format
  2. .clang-tidy
  3. .git-blame-ignore-revs
  4. .gitattributes
  5. .gitignore
  6. .gn
  7. .style.yapf
  8. AUTHORS
  9. BUILD.gn
  10. CODE_OF_CONDUCT.md
  11. CONTRIBUTING.md
  12. LICENSE
  13. OWNERS
  14. PATENTS
  15. README.md
  16. boards/
  17. build/
  18. buildtools/
  19. bundles/
  20. docs/
  21. examples/
  22. garnet/
  23. products/
  24. rustfmt.toml
  25. scripts/
  26. sdk/
  27. src/
  28. third_party/
  29. tools/
  30. zircon/
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.

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.