pw_string: Split pw_string into multiple targets

- Split pw_string into separate source_sets. This allows targets to
  depend on specific features, which is helpful if trying to avoid
  unwanted dependencies and C++ standard requirements (some work with
  C++14, some do not).
- Make pw_string a group for backwards compatibility.
- Update pw_kvs to no longer use pw_string/util.h since it was using an
  internal header.

Change-Id: Ie1ab258b7171b4ae58ca6564ead0ae317eb8f9f0
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/96000
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
Commit-Queue: Wyatt Hepler <hepler@google.com>
Reviewed-by: Ted Pudlik <tpudlik@google.com>
8 files changed
tree: 71e560eb31f5d5adabd9ac2e4fe7fb2fe406651a
  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_emcraft_sf2/
  98. pw_sys_io_mcuxpresso/
  99. pw_sys_io_stdio/
  100. pw_sys_io_stm32cube/
  101. pw_sys_io_zephyr/
  102. pw_system/
  103. pw_target_runner/
  104. pw_thread/
  105. pw_thread_embos/
  106. pw_thread_freertos/
  107. pw_thread_stl/
  108. pw_thread_threadx/
  109. pw_tls_client/
  110. pw_tls_client_boringssl/
  111. pw_tls_client_mbedtls/
  112. pw_tokenizer/
  113. pw_tool/
  114. pw_toolchain/
  115. pw_trace/
  116. pw_trace_tokenized/
  117. pw_transfer/
  118. pw_unit_test/
  119. pw_varint/
  120. pw_watch/
  121. pw_web_ui/
  122. pw_work_queue/
  123. targets/
  124. third_party/
  125. zephyr/
  126. .bazelignore
  127. .bazelrc
  128. .clang-format
  129. .clang-tidy
  130. .eslintrc.json
  131. .gitattributes
  132. .gitignore
  133. .gn
  134. .prettierrc.js
  135. .pylintrc
  136. activate.bat
  137. Android.bp
  138. AUTHORS
  139. bootstrap.bat
  140. bootstrap.sh
  141. BUILD.bazel
  142. BUILD.gn
  143. BUILDCONFIG.gn
  144. CMakeLists.txt
  145. Kconfig.zephyr
  146. LICENSE
  147. modules.gni
  148. OWNERS
  149. package.json
  150. PIGWEED_MODULES
  151. PW_PLUGINS
  152. README.md
  153. tsconfig.json
  154. WORKSPACE
  155. 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