targets/android: Generic Android target

This creates a Pigweed target for a generic Android device built
against a downloaded Android NDK, the path of which is specified in
the `pw_android_toolchain_NDK_PATH` build arg.

Toolchains for all four supported CPU types (arm, arm64, x64, x86) are
generated, so this can be used with e.g.:

  pw_executable("hello") {
    sources = [ "hello.cc" ]
    deps = dir_pw_log
  ]

  group("android_apps") {
    deps = [
      ":hello(//targets/android:arm_android_debug)",
      ":hello(//targets/android:arm64_android_debug)",
    ]
  }

Change-Id: Ia8a087229a3cddbc354b85646b8cd10babc34653
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/55341
Reviewed-by: Anthony DiGirolamo <tonymd@google.com>
Commit-Queue: Scott James Remnant <keybuk@google.com>
4 files changed
tree: 0da4ad1d1caf046d6214c770fb7a225be22078e3
  1. build_overrides/
  2. docker/
  3. docs/
  4. pw_allocator/
  5. pw_analog/
  6. pw_android_toolchain/
  7. pw_arduino_build/
  8. pw_assert/
  9. pw_assert_basic/
  10. pw_assert_log/
  11. pw_base64/
  12. pw_bloat/
  13. pw_blob_store/
  14. pw_boot/
  15. pw_boot_cortex_m/
  16. pw_build/
  17. pw_build_info/
  18. pw_bytes/
  19. pw_checksum/
  20. pw_chrono/
  21. pw_chrono_embos/
  22. pw_chrono_freertos/
  23. pw_chrono_stl/
  24. pw_chrono_threadx/
  25. pw_cli/
  26. pw_console/
  27. pw_containers/
  28. pw_cpu_exception/
  29. pw_cpu_exception_cortex_m/
  30. pw_crypto/
  31. pw_docgen/
  32. pw_doctor/
  33. pw_env_setup/
  34. pw_function/
  35. pw_fuzzer/
  36. pw_hdlc/
  37. pw_hex_dump/
  38. pw_i2c/
  39. pw_interrupt/
  40. pw_interrupt_cortex_m/
  41. pw_kvs/
  42. pw_libc/
  43. pw_log/
  44. pw_log_basic/
  45. pw_log_null/
  46. pw_log_rpc/
  47. pw_log_tokenized/
  48. pw_malloc/
  49. pw_malloc_freelist/
  50. pw_metric/
  51. pw_minimal_cpp_stdlib/
  52. pw_module/
  53. pw_multisink/
  54. pw_package/
  55. pw_persistent_ram/
  56. pw_polyfill/
  57. pw_preprocessor/
  58. pw_presubmit/
  59. pw_protobuf/
  60. pw_protobuf_compiler/
  61. pw_random/
  62. pw_result/
  63. pw_ring_buffer/
  64. pw_router/
  65. pw_rpc/
  66. pw_snapshot/
  67. pw_span/
  68. pw_status/
  69. pw_stm32cube_build/
  70. pw_stream/
  71. pw_string/
  72. pw_symbolizer/
  73. pw_sync/
  74. pw_sync_baremetal/
  75. pw_sync_embos/
  76. pw_sync_freertos/
  77. pw_sync_stl/
  78. pw_sync_threadx/
  79. pw_sys_io/
  80. pw_sys_io_arduino/
  81. pw_sys_io_baremetal_lm3s6965evb/
  82. pw_sys_io_baremetal_stm32f429/
  83. pw_sys_io_stdio/
  84. pw_target_runner/
  85. pw_thread/
  86. pw_thread_embos/
  87. pw_thread_freertos/
  88. pw_thread_stl/
  89. pw_thread_threadx/
  90. pw_tls_client/
  91. pw_tls_client_boringssl/
  92. pw_tls_client_mbedtls/
  93. pw_tokenizer/
  94. pw_tool/
  95. pw_toolchain/
  96. pw_trace/
  97. pw_trace_tokenized/
  98. pw_transfer/
  99. pw_unit_test/
  100. pw_varint/
  101. pw_watch/
  102. pw_web_ui/
  103. targets/
  104. third_party/
  105. .bazelignore
  106. .bazelrc
  107. .clang-format
  108. .eslintrc.json
  109. .gitattributes
  110. .gitignore
  111. .gn
  112. .prettierrc.js
  113. .pylintrc
  114. activate.bat
  115. AUTHORS
  116. bootstrap.bat
  117. bootstrap.sh
  118. BUILD.bazel
  119. BUILD.gn
  120. BUILDCONFIG.gn
  121. CMakeLists.txt
  122. LICENSE
  123. modules.gni
  124. OWNERS
  125. package.json
  126. PW_PLUGINS
  127. README.md
  128. tsconfig.json
  129. WORKSPACE
  130. yarn.lock
README.md

See our website: http://pigweed.dev