add aidl_interface_headers module type

As part of the go/roboleaf conversion, all inputs to a rule need to be
explicitly provided to Bazel to satisfy sandboxing requirements. The
include_dirs property of aidl_interfaces passes directory paths to the
AIDL compiler to locate imports in AIDL files, but since Soong
sandboxing allows access of the entire source tree at rule execution
time, the sources used in the include_dirs property are not explicity
provided to the build system.

The aidl_interface_headers module type acts like a filegroup and wraps
a collection of AIDL sources and their import directory to track the
inputs for AIDL compilation actions. These inputs are then recorded as
implicits to the Soong rule as well. This explicit file information
will be used to allow Bazel to perform fully sandboxed actions.

The include_dirs property will be removed in a future commit in Internal
since there are some modules there that still use it.

Bug: 229251008
Test: m networkstack-aidl-interfaces
Change-Id: I8742645dca1b1054f4e3df63bfc5cfebb2c2b181
7 files changed
tree: cdafd439867802b84822a80ccc398b3f5cfba036
  1. aidl_api/
  2. build/
  3. metadata/
  4. scripts/
  5. tests/
  6. trace/
  7. aidl-format.sh
  8. aidl.cpp
  9. aidl.h
  10. aidl_checkapi.cpp
  11. aidl_checkapi.h
  12. aidl_const_expressions.cpp
  13. aidl_dumpapi.cpp
  14. aidl_dumpapi.h
  15. aidl_language.cpp
  16. aidl_language.h
  17. aidl_language_l.ll
  18. aidl_language_y.yy
  19. aidl_to_cpp.cpp
  20. aidl_to_cpp.h
  21. aidl_to_cpp_common.cpp
  22. aidl_to_cpp_common.h
  23. aidl_to_java.cpp
  24. aidl_to_java.h
  25. aidl_to_ndk.cpp
  26. aidl_to_ndk.h
  27. aidl_to_rust.cpp
  28. aidl_to_rust.h
  29. aidl_typenames.cpp
  30. aidl_typenames.h
  31. aidl_unittest.cpp
  32. Android.bp
  33. ast_java.cpp
  34. ast_java.h
  35. ast_java_unittest.cpp
  36. check_valid.cpp
  37. check_valid.h
  38. code_writer.cpp
  39. code_writer.h
  40. code_writer_unittest.cpp
  41. comments.cpp
  42. comments.h
  43. diagnostics.cpp
  44. diagnostics.h
  45. diagnostics.inc
  46. diagnostics_unittest.cpp
  47. generate_aidl_mappings.cpp
  48. generate_aidl_mappings.h
  49. generate_cpp.cpp
  50. generate_cpp.h
  51. generate_cpp_unittest.cpp
  52. generate_java.cpp
  53. generate_java.h
  54. generate_java_binder.cpp
  55. generate_ndk.cpp
  56. generate_ndk.h
  57. generate_rust.cpp
  58. generate_rust.h
  59. hiddenapi-greylist
  60. import_resolver.cpp
  61. import_resolver.h
  62. io_delegate.cpp
  63. io_delegate.h
  64. io_delegate_unittest.cpp
  65. location.cpp
  66. location.h
  67. logging.cpp
  68. logging.h
  69. main.cpp
  70. NOTICE
  71. options.cpp
  72. options.h
  73. options_unittest.cpp
  74. os.h
  75. OWNERS
  76. parser.cpp
  77. parser.h
  78. permission.cpp
  79. permission.h
  80. preprocess.cpp
  81. preprocess.h
  82. PREUPLOAD.cfg
  83. README.md
  84. run_integration_tests.sh
  85. TEST_MAPPING
README.md

Documentation for this project is currently maintained here:

https://source.android.com/devices/architecture/aidl/overview