pw_toolchain: Add cmake helpers for getting clang compile+link flags

Provide something similar to clang_config.gni but for cmake. This
provides two functions: one for retrieiving compile flags needed by
clang, and one for linking flags needed by clang. They both end up
calling `clang_arm_toolchain.py` retrieving the flags.

Change-Id: I9b18bf6e65165685430f9e58d148970eb03243fc
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/163811
Commit-Queue: Leonard Chan <leonardchan@google.com>
Reviewed-by: Prabhu Karthikeyan Rajasekaran <prabhukr@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
1 file changed
tree: 0a8ca361c218eb88a4a056d5355935328c647698
  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_shmem_mcuxpresso/
  103. pw_stream_uart_linux/
  104. pw_stream_uart_mcuxpresso/
  105. pw_string/
  106. pw_symbolizer/
  107. pw_sync/
  108. pw_sync_baremetal/
  109. pw_sync_embos/
  110. pw_sync_freertos/
  111. pw_sync_stl/
  112. pw_sync_threadx/
  113. pw_sync_zephyr/
  114. pw_sys_io/
  115. pw_sys_io_arduino/
  116. pw_sys_io_baremetal_lm3s6965evb/
  117. pw_sys_io_baremetal_stm32f429/
  118. pw_sys_io_emcraft_sf2/
  119. pw_sys_io_mcuxpresso/
  120. pw_sys_io_pico/
  121. pw_sys_io_stdio/
  122. pw_sys_io_stm32cube/
  123. pw_sys_io_zephyr/
  124. pw_system/
  125. pw_target_runner/
  126. pw_thread/
  127. pw_thread_embos/
  128. pw_thread_freertos/
  129. pw_thread_stl/
  130. pw_thread_threadx/
  131. pw_thread_zephyr/
  132. pw_tls_client/
  133. pw_tls_client_boringssl/
  134. pw_tls_client_mbedtls/
  135. pw_tokenizer/
  136. pw_tool/
  137. pw_toolchain/
  138. pw_toolchain_bazel/
  139. pw_trace/
  140. pw_trace_tokenized/
  141. pw_transfer/
  142. pw_unit_test/
  143. pw_unit_test_zephyr/
  144. pw_varint/
  145. pw_watch/
  146. pw_web/
  147. pw_work_queue/
  148. seed/
  149. targets/
  150. third_party/
  151. ts/
  152. zephyr/
  153. .bazelignore
  154. .bazelrc
  155. .black.toml
  156. .clang-format
  157. .clang-tidy
  158. .eslintrc.json
  159. .git-blame-ignore-revs
  160. .gitattributes
  161. .gitignore
  162. .gn
  163. .mypy.ini
  164. .prettierignore
  165. .prettierrc.cjs
  166. .pw_ide.yaml
  167. .pylintrc
  168. activate.bat
  169. Android.bp
  170. AUTHORS
  171. bootstrap.bat
  172. bootstrap.sh
  173. BUILD.bazel
  174. BUILD.gn
  175. BUILDCONFIG.gn
  176. CMakeLists.txt
  177. jest.config.ts
  178. Kconfig.zephyr
  179. LICENSE
  180. modules.gni
  181. OWNERS
  182. package-lock.json
  183. package.json
  184. pigweed.json
  185. PIGWEED_MODULES
  186. README.md
  187. rollup.config.js
  188. tsconfig.json
  189. 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