pw_build: Support public_deps in pw_exec() template

Declaring public_deps in the pw_exec() template invocation allows
callers to use the outputs of those public deps. In some cases, in
particular when using <TARGET_FILE(...)>, we can't create a group() that
bundles all the pw_exec() targets using public_deps since the target in
that case can't be a group. This patch allows to pass public_deps from
the invoker.

Change-Id: If684c46abc06b840795efd72f41510445fd382e4
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/86600
Reviewed-by: Keir Mierle <keir@google.com>
Reviewed-by: Armando Montanez <amontanez@google.com>
Commit-Queue: Alex Deymo <deymo@google.com>
2 files changed
tree: 659d0fbce845b7788cb24d415b6159490a14cce5
  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_assert_tokenized/
  12. pw_assert_zephyr/
  13. pw_base64/
  14. pw_bloat/
  15. pw_blob_store/
  16. pw_bluetooth_hci/
  17. pw_boot/
  18. pw_boot_cortex_m/
  19. pw_build/
  20. pw_build_info/
  21. pw_build_mcuxpresso/
  22. pw_bytes/
  23. pw_checksum/
  24. pw_chrono/
  25. pw_chrono_embos/
  26. pw_chrono_freertos/
  27. pw_chrono_stl/
  28. pw_chrono_threadx/
  29. pw_chrono_zephyr/
  30. pw_cli/
  31. pw_console/
  32. pw_containers/
  33. pw_cpu_exception/
  34. pw_cpu_exception_cortex_m/
  35. pw_crypto/
  36. pw_docgen/
  37. pw_doctor/
  38. pw_env_setup/
  39. pw_file/
  40. pw_function/
  41. pw_fuzzer/
  42. pw_hdlc/
  43. pw_hex_dump/
  44. pw_i2c/
  45. pw_i2c_mcuxpresso/
  46. pw_interrupt/
  47. pw_interrupt_cortex_m/
  48. pw_interrupt_zephyr/
  49. pw_kvs/
  50. pw_libc/
  51. pw_log/
  52. pw_log_android/
  53. pw_log_basic/
  54. pw_log_null/
  55. pw_log_rpc/
  56. pw_log_string/
  57. pw_log_tokenized/
  58. pw_log_zephyr/
  59. pw_malloc/
  60. pw_malloc_freelist/
  61. pw_metric/
  62. pw_minimal_cpp_stdlib/
  63. pw_module/
  64. pw_multisink/
  65. pw_package/
  66. pw_persistent_ram/
  67. pw_polyfill/
  68. pw_preprocessor/
  69. pw_presubmit/
  70. pw_protobuf/
  71. pw_protobuf_compiler/
  72. pw_random/
  73. pw_result/
  74. pw_ring_buffer/
  75. pw_router/
  76. pw_rpc/
  77. pw_snapshot/
  78. pw_software_update/
  79. pw_span/
  80. pw_spi/
  81. pw_status/
  82. pw_stm32cube_build/
  83. pw_stream/
  84. pw_string/
  85. pw_symbolizer/
  86. pw_sync/
  87. pw_sync_baremetal/
  88. pw_sync_embos/
  89. pw_sync_freertos/
  90. pw_sync_stl/
  91. pw_sync_threadx/
  92. pw_sync_zephyr/
  93. pw_sys_io/
  94. pw_sys_io_arduino/
  95. pw_sys_io_baremetal_lm3s6965evb/
  96. pw_sys_io_baremetal_stm32f429/
  97. pw_sys_io_mcuxpresso/
  98. pw_sys_io_stdio/
  99. pw_sys_io_stm32cube/
  100. pw_sys_io_zephyr/
  101. pw_system/
  102. pw_target_runner/
  103. pw_thread/
  104. pw_thread_embos/
  105. pw_thread_freertos/
  106. pw_thread_stl/
  107. pw_thread_threadx/
  108. pw_tls_client/
  109. pw_tls_client_boringssl/
  110. pw_tls_client_mbedtls/
  111. pw_tokenizer/
  112. pw_tool/
  113. pw_toolchain/
  114. pw_trace/
  115. pw_trace_tokenized/
  116. pw_transfer/
  117. pw_unit_test/
  118. pw_varint/
  119. pw_watch/
  120. pw_web_ui/
  121. pw_work_queue/
  122. targets/
  123. third_party/
  124. zephyr/
  125. .bazelignore
  126. .bazelrc
  127. .clang-format
  128. .clang-tidy
  129. .eslintrc.json
  130. .gitattributes
  131. .gitignore
  132. .gn
  133. .prettierrc.js
  134. .pylintrc
  135. activate.bat
  136. Android.bp
  137. AUTHORS
  138. bootstrap.bat
  139. bootstrap.sh
  140. BUILD.bazel
  141. BUILD.gn
  142. BUILDCONFIG.gn
  143. CMakeLists.txt
  144. Kconfig.zephyr
  145. LICENSE
  146. modules.gni
  147. OWNERS
  148. package.json
  149. PIGWEED_MODULES
  150. PW_PLUGINS
  151. README.md
  152. tsconfig.json
  153. WORKSPACE
  154. yarn.lock
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