pw_protobuf_compiler: Make nanopb hermetic

Nanopb had dependencies on protoc exising on the system PATH, and was
relying on a python interpeter from the PATH as well. This changes the
pw_protobuf_compiler Bazel integration to properly initialize a PATH
that makes nanopb use Bazel-provided executables for these.

Bug: b/293792686
Change-Id: I95b193f8930b2d1314e83fcaaed129dc5eded927
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162313
Pigweed-Auto-Submit: Armando Montanez <amontanez@google.com>
Presubmit-Verified: CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed-service-accounts.iam.gserviceaccount.com>
Reviewed-by: Anthony DiGirolamo <tonymd@google.com>
1 file changed
tree: 6990b68ffad54327be5dbcd4f822d9b551a00fa5
  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_xtensa/
  61. pw_interrupt_zephyr/
  62. pw_intrusive_ptr/
  63. pw_kvs/
  64. pw_libc/
  65. pw_log/
  66. pw_log_android/
  67. pw_log_basic/
  68. pw_log_null/
  69. pw_log_rpc/
  70. pw_log_string/
  71. pw_log_tokenized/
  72. pw_log_zephyr/
  73. pw_malloc/
  74. pw_malloc_freelist/
  75. pw_metric/
  76. pw_minimal_cpp_stdlib/
  77. pw_module/
  78. pw_multisink/
  79. pw_package/
  80. pw_perf_test/
  81. pw_persistent_ram/
  82. pw_polyfill/
  83. pw_preprocessor/
  84. pw_presubmit/
  85. pw_protobuf/
  86. pw_protobuf_compiler/
  87. pw_random/
  88. pw_result/
  89. pw_ring_buffer/
  90. pw_router/
  91. pw_rpc/
  92. pw_rpc_transport/
  93. pw_rust/
  94. pw_snapshot/
  95. pw_software_update/
  96. pw_span/
  97. pw_spi/
  98. pw_spi_mcuxpresso/
  99. pw_status/
  100. pw_stm32cube_build/
  101. pw_stream/
  102. pw_stream_uart_linux/
  103. pw_stream_uart_mcuxpresso/
  104. pw_string/
  105. pw_symbolizer/
  106. pw_sync/
  107. pw_sync_baremetal/
  108. pw_sync_embos/
  109. pw_sync_freertos/
  110. pw_sync_stl/
  111. pw_sync_threadx/
  112. pw_sync_zephyr/
  113. pw_sys_io/
  114. pw_sys_io_arduino/
  115. pw_sys_io_baremetal_lm3s6965evb/
  116. pw_sys_io_baremetal_stm32f429/
  117. pw_sys_io_emcraft_sf2/
  118. pw_sys_io_mcuxpresso/
  119. pw_sys_io_pico/
  120. pw_sys_io_stdio/
  121. pw_sys_io_stm32cube/
  122. pw_sys_io_zephyr/
  123. pw_system/
  124. pw_target_runner/
  125. pw_thread/
  126. pw_thread_embos/
  127. pw_thread_freertos/
  128. pw_thread_stl/
  129. pw_thread_threadx/
  130. pw_thread_zephyr/
  131. pw_tls_client/
  132. pw_tls_client_boringssl/
  133. pw_tls_client_mbedtls/
  134. pw_tokenizer/
  135. pw_tool/
  136. pw_toolchain/
  137. pw_trace/
  138. pw_trace_tokenized/
  139. pw_transfer/
  140. pw_unit_test/
  141. pw_unit_test_zephyr/
  142. pw_varint/
  143. pw_watch/
  144. pw_web/
  145. pw_work_queue/
  146. seed/
  147. targets/
  148. third_party/
  149. ts/
  150. zephyr/
  151. .bazelignore
  152. .bazelrc
  153. .black.toml
  154. .clang-format
  155. .clang-tidy
  156. .eslintrc.json
  157. .git-blame-ignore-revs
  158. .gitattributes
  159. .gitignore
  160. .gn
  161. .mypy.ini
  162. .prettierrc.js
  163. .pw_ide.yaml
  164. .pylintrc
  165. activate.bat
  166. Android.bp
  167. AUTHORS
  168. bootstrap.bat
  169. bootstrap.sh
  170. BUILD.bazel
  171. BUILD.gn
  172. BUILDCONFIG.gn
  173. CMakeLists.txt
  174. jest.config.ts
  175. Kconfig.zephyr
  176. LICENSE
  177. modules.gni
  178. OWNERS
  179. package-lock.json
  180. package.json
  181. pigweed.json
  182. PIGWEED_MODULES
  183. README.md
  184. rollup.config.js
  185. tsconfig.json
  186. 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