pw_build_mcuxpresso: Support outputting Bazel target

Adds a new 'bazel' command that outputs a Bazel cc_library target for
the given project components. This is intended to be invoked manually
since Bazel does not have a build phrase in which it is possible to
construct custom targets.

Rename the existing 'project' command to 'gn' to avoid confusion. This
is only used by the script internally.

Bug: 289552654
Change-Id: Ibe0b8bb1c55c5f7498069b9371c3ed0c2c0853fb
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/150372
Reviewed-by: Ted Pudlik <tpudlik@google.com>
Reviewed-by: Austin Foxley <afoxley@google.com>
Commit-Queue: Scott James Remnant <keybuk@google.com>
8 files changed
tree: 305825c1ed9e0da041d2626ba74b05059f687e5c
  1. .allstar/
  2. .vscode/
  3. build_overrides/
  4. docker/
  5. docs/
  6. pw_alignment/
  7. pw_allocator/
  8. pw_analog/
  9. pw_android_toolchain/
  10. pw_arduino_build/
  11. pw_assert/
  12. pw_assert_basic/
  13. pw_assert_log/
  14. pw_assert_tokenized/
  15. pw_assert_zephyr/
  16. pw_async/
  17. pw_async_basic/
  18. pw_base64/
  19. pw_bloat/
  20. pw_blob_store/
  21. pw_bluetooth/
  22. pw_bluetooth_hci/
  23. pw_bluetooth_profiles/
  24. pw_boot/
  25. pw_boot_cortex_m/
  26. pw_build/
  27. pw_build_info/
  28. pw_build_mcuxpresso/
  29. pw_bytes/
  30. pw_checksum/
  31. pw_chrono/
  32. pw_chrono_embos/
  33. pw_chrono_freertos/
  34. pw_chrono_stl/
  35. pw_chrono_threadx/
  36. pw_chrono_zephyr/
  37. pw_cli/
  38. pw_compilation_testing/
  39. pw_console/
  40. pw_containers/
  41. pw_cpu_exception/
  42. pw_cpu_exception_cortex_m/
  43. pw_crypto/
  44. pw_digital_io/
  45. pw_digital_io_mcuxpresso/
  46. pw_docgen/
  47. pw_doctor/
  48. pw_env_setup/
  49. pw_file/
  50. pw_function/
  51. pw_fuzzer/
  52. pw_hdlc/
  53. pw_hex_dump/
  54. pw_i2c/
  55. pw_i2c_linux/
  56. pw_i2c_mcuxpresso/
  57. pw_ide/
  58. pw_interrupt/
  59. pw_interrupt_cortex_m/
  60. pw_interrupt_zephyr/
  61. pw_intrusive_ptr/
  62. pw_kvs/
  63. pw_libc/
  64. pw_log/
  65. pw_log_android/
  66. pw_log_basic/
  67. pw_log_null/
  68. pw_log_rpc/
  69. pw_log_string/
  70. pw_log_tokenized/
  71. pw_log_zephyr/
  72. pw_malloc/
  73. pw_malloc_freelist/
  74. pw_metric/
  75. pw_minimal_cpp_stdlib/
  76. pw_module/
  77. pw_multisink/
  78. pw_package/
  79. pw_perf_test/
  80. pw_persistent_ram/
  81. pw_polyfill/
  82. pw_preprocessor/
  83. pw_presubmit/
  84. pw_protobuf/
  85. pw_protobuf_compiler/
  86. pw_random/
  87. pw_result/
  88. pw_ring_buffer/
  89. pw_router/
  90. pw_rpc/
  91. pw_rpc_transport/
  92. pw_rust/
  93. pw_snapshot/
  94. pw_software_update/
  95. pw_span/
  96. pw_spi/
  97. pw_spi_mcuxpresso/
  98. pw_status/
  99. pw_stm32cube_build/
  100. pw_stream/
  101. pw_stream_uart_mcuxpresso/
  102. pw_string/
  103. pw_symbolizer/
  104. pw_sync/
  105. pw_sync_baremetal/
  106. pw_sync_embos/
  107. pw_sync_freertos/
  108. pw_sync_stl/
  109. pw_sync_threadx/
  110. pw_sync_zephyr/
  111. pw_sys_io/
  112. pw_sys_io_arduino/
  113. pw_sys_io_baremetal_lm3s6965evb/
  114. pw_sys_io_baremetal_stm32f429/
  115. pw_sys_io_emcraft_sf2/
  116. pw_sys_io_mcuxpresso/
  117. pw_sys_io_pico/
  118. pw_sys_io_stdio/
  119. pw_sys_io_stm32cube/
  120. pw_sys_io_zephyr/
  121. pw_system/
  122. pw_target_runner/
  123. pw_thread/
  124. pw_thread_embos/
  125. pw_thread_freertos/
  126. pw_thread_stl/
  127. pw_thread_threadx/
  128. pw_thread_zephyr/
  129. pw_tls_client/
  130. pw_tls_client_boringssl/
  131. pw_tls_client_mbedtls/
  132. pw_tokenizer/
  133. pw_tool/
  134. pw_toolchain/
  135. pw_trace/
  136. pw_trace_tokenized/
  137. pw_transfer/
  138. pw_unit_test/
  139. pw_unit_test_zephyr/
  140. pw_varint/
  141. pw_watch/
  142. pw_web/
  143. pw_work_queue/
  144. seed/
  145. targets/
  146. third_party/
  147. ts/
  148. zephyr/
  149. .bazelignore
  150. .bazelrc
  151. .black.toml
  152. .clang-format
  153. .clang-tidy
  154. .eslintrc.json
  155. .git-blame-ignore-revs
  156. .gitattributes
  157. .gitignore
  158. .gn
  159. .mypy.ini
  160. .prettierrc.js
  161. .pw_ide.yaml
  162. .pylintrc
  163. activate.bat
  164. Android.bp
  165. AUTHORS
  166. bootstrap.bat
  167. bootstrap.sh
  168. BUILD.bazel
  169. BUILD.gn
  170. BUILDCONFIG.gn
  171. CMakeLists.txt
  172. jest.config.ts
  173. Kconfig.zephyr
  174. LICENSE
  175. modules.gni
  176. OWNERS
  177. package-lock.json
  178. package.json
  179. pigweed.json
  180. PIGWEED_MODULES
  181. README.md
  182. rollup.config.js
  183. tsconfig.json
  184. WORKSPACE
README.md

Pigweed

Pigweed is an open source collection of embedded-targeted libraries–or as we like to call them, modules. These modules are building blocks and infrastructure that enable faster and more reliable development on small-footprint MMU-less 32-bit microcontrollers like the STMicroelectronics STM32L452 or the Nordic nRF52832.

For more information please see our website: https://pigweed.dev/.

Links