bpdocs for struct types created using reflection

struct types defined using reflection have empty PkgPaths(), due to
which they were not added to the generated bpdocs. This CL allows
us to generate bpdocs for such struct types.

For each field in the struct, the algorithm checks the following and
creates a PropertyStruct object accordingly
1. If field is a primitive type (Base condition)
2. If field is another exported struct (Base condition)
3. If field is another struct created using reflection (Recurse)

Test: m soong_docs
Test: java_sdk_library_import before
https://ci.android.com/builds/submitted/7710820/linux/latest/view/java.html#java_sdk_library_import
and after
https://spandandas.users.x20web.corp.google.com/docs/java.html#java_sdk_library_import
Bug: 172797653

Change-Id: I0349e405fd290d427fa0b38a109b4212aace50c6
4 files changed
tree: caa7abda4221cfad0fbe847f055df3b26efbd3f9
  1. .github/
  2. .gitignore
  3. .gofmt.sh
  4. Android.bp
  5. CODEOWNERS
  6. CONTRIBUTING.md
  7. LICENSE
  8. OWNERS
  9. PREUPLOAD.cfg
  10. README.md
  11. bootstrap/
  12. bpfmt/
  13. bpmodify/
  14. context.go
  15. context_test.go
  16. deptools/
  17. doc.go
  18. glob.go
  19. glob_test.go
  20. go.mod
  21. gotestmain/
  22. gotestrunner/
  23. live_tracker.go
  24. loadplugins/
  25. mangle.go
  26. microfactory/
  27. module_ctx.go
  28. module_ctx_test.go
  29. name_interface.go
  30. ninja_defs.go
  31. ninja_strings.go
  32. ninja_strings_test.go
  33. ninja_writer.go
  34. ninja_writer_test.go
  35. package_ctx.go
  36. parser/
  37. pathtools/
  38. proptools/
  39. provider.go
  40. provider_test.go
  41. scope.go
  42. singleton_ctx.go
  43. splice_modules_test.go
  44. tests/
  45. visit_test.go
README.md

Blueprint Build System

Blueprint is being archived on 2021 May 3.

On 2021 May 3, we will be archiving the Blueprint project. This means it will not be possible to file new issues or open new pull requests for this GitHub project. As the project is being archived, patches -- including security patches -- will not be applied after May 3. The source tree will remain available, but changes to Blueprint in AOSP will not be merged here and Blueprint's source tree in AOSP will eventually stop being usable outside of Android.

Whereas there are no meta-build systems one can use as a drop-in replacement for Blueprint, there are a number of build systems that can be used:

  • Bazel, Google's multi-language build tool to build and test software of any size, quickly and reliably
  • Soong, for building the Android operating system itself
  • CMake, an open-source, cross-platform family of tools designed to build, test and package software
  • Buck, a fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages
  • The venerable GNU Make