pw_{protobuf_compiler,rpc}: Use hermetic protoc

Changes pw_protobuf_compiler so it can pull the path to protoc from the
PROTOC environment variable, and changes pw_rpc tests to properly set up
the environment such that the hermetic protoc binary is used.

Bug: b/294284927
Change-Id: Iaa1df8bf17fa1f7666824553e050c06b80b98bec
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/162913
Presubmit-Verified: CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
Commit-Queue: Armando Montanez <amontanez@google.com>
2 files changed
tree: 969f82aa1747bf239dee734e097cf58f79465a76
  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