pw_build: Support specifying final link dependencies

- pw_build_LINK_DEPS is a list of build targets that are linked into
  all build artifacts produced by pw_executable, pw_static_library, and
  pw_shared_library.
- Add a ":deps" group to the pw_assert build interface. Require
  $dir_pw_assert:deps to be listed in pw_build_LINK_DEPS if
  pw_assert_BACKEND is set.

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

See our website: http://pigweed.dev