pw_ide: Introduce ide_query tool

Adds the ide_query.py script and associated tests. This tool provides a
unified interface for querying IDE-related information from the build
system, abstracting away the specifics of the underlying build tool
(Bazel, GN, etc).

Change-Id: If527efe612d8d36ceb831c4fe26540d1a8e21e80
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/379121
4 files changed
tree: 8eaf30cc30eef011084719d05ddab96f552b9cbf
  1. .agents/
  2. .allstar/
  3. .gemini/
  4. .github/
  5. .vscode/
  6. build_overrides/
  7. docker/
  8. docs/
  9. kudzu/
  10. pw_alignment/
  11. pw_allocator/
  12. pw_analog/
  13. pw_android_toolchain/
  14. pw_arduino_build/
  15. pw_assert/
  16. pw_assert_basic/
  17. pw_assert_fuchsia/
  18. pw_assert_log/
  19. pw_assert_tokenized/
  20. pw_assert_trap/
  21. pw_assert_zephyr/
  22. pw_async/
  23. pw_async2/
  24. pw_async_basic/
  25. pw_async_fuchsia/
  26. pw_atomic/
  27. pw_base64/
  28. pw_bloat/
  29. pw_blob_store/
  30. pw_bluetooth/
  31. pw_bluetooth_hci/
  32. pw_bluetooth_profiles/
  33. pw_bluetooth_proxy/
  34. pw_bluetooth_sapphire/
  35. pw_boot/
  36. pw_boot_cortex_m/
  37. pw_build/
  38. pw_build_android/
  39. pw_build_info/
  40. pw_build_mcuxpresso/
  41. pw_bytes/
  42. pw_change/
  43. pw_channel/
  44. pw_checksum/
  45. pw_chre/
  46. pw_chrono/
  47. pw_chrono_embos/
  48. pw_chrono_freertos/
  49. pw_chrono_rp2040/
  50. pw_chrono_stl/
  51. pw_chrono_threadx/
  52. pw_chrono_zephyr/
  53. pw_cli/
  54. pw_cli_analytics/
  55. pw_clock_tree/
  56. pw_clock_tree_mcuxpresso/
  57. pw_compilation_testing/
  58. pw_config_loader/
  59. pw_console/
  60. pw_containers/
  61. pw_cpu_exception/
  62. pw_cpu_exception_cortex_m/
  63. pw_cpu_exception_risc_v/
  64. pw_crypto/
  65. pw_digital_io/
  66. pw_digital_io_linux/
  67. pw_digital_io_mcuxpresso/
  68. pw_digital_io_rp2040/
  69. pw_digital_io_zephyr/
  70. pw_display/
  71. pw_dma_mcuxpresso/
  72. pw_docgen/
  73. pw_doctor/
  74. pw_elf/
  75. pw_emu/
  76. pw_env_setup/
  77. pw_env_setup_zephyr/
  78. pw_file/
  79. pw_flatbuffers/
  80. pw_format/
  81. pw_function/
  82. pw_fuzzer/
  83. pw_grpc/
  84. pw_hdlc/
  85. pw_hex_dump/
  86. pw_i2c/
  87. pw_i2c_linux/
  88. pw_i2c_mcuxpresso/
  89. pw_i2c_rp2040/
  90. pw_i2c_zephyr/
  91. pw_ide/
  92. pw_interrupt/
  93. pw_interrupt_cortex_m/
  94. pw_interrupt_freertos/
  95. pw_interrupt_zephyr/
  96. pw_intrusive_ptr/
  97. pw_json/
  98. pw_kernel/
  99. pw_kvs/
  100. pw_libc/
  101. pw_libcxx/
  102. pw_log/
  103. pw_log_android/
  104. pw_log_basic/
  105. pw_log_fuchsia/
  106. pw_log_null/
  107. pw_log_rpc/
  108. pw_log_string/
  109. pw_log_tokenized/
  110. pw_log_zephyr/
  111. pw_malloc/
  112. pw_malloc_freelist/
  113. pw_malloc_freertos/
  114. pw_memory/
  115. pw_metric/
  116. pw_module/
  117. pw_multibuf/
  118. pw_multisink/
  119. pw_numeric/
  120. pw_package/
  121. pw_perf_test/
  122. pw_persistent_ram/
  123. pw_polyfill/
  124. pw_preprocessor/
  125. pw_presubmit/
  126. pw_protobuf/
  127. pw_protobuf_compiler/
  128. pw_random/
  129. pw_random_fuchsia/
  130. pw_result/
  131. pw_ring_buffer/
  132. pw_router/
  133. pw_rpc/
  134. pw_rpc_transport/
  135. pw_rust/
  136. pw_sensor/
  137. pw_snapshot/
  138. pw_software_update/
  139. pw_span/
  140. pw_spi/
  141. pw_spi_linux/
  142. pw_spi_mcuxpresso/
  143. pw_spi_rp2040/
  144. pw_status/
  145. pw_stm32cube_build/
  146. pw_stream/
  147. pw_stream_shmem_mcuxpresso/
  148. pw_stream_uart_linux/
  149. pw_stream_uart_mcuxpresso/
  150. pw_string/
  151. pw_symbolizer/
  152. pw_sync/
  153. pw_sync_baremetal/
  154. pw_sync_embos/
  155. pw_sync_freertos/
  156. pw_sync_stl/
  157. pw_sync_threadx/
  158. pw_sync_zephyr/
  159. pw_sys_io/
  160. pw_sys_io_ambiq_sdk/
  161. pw_sys_io_arduino/
  162. pw_sys_io_baremetal_lm3s6965evb/
  163. pw_sys_io_baremetal_stm32f429/
  164. pw_sys_io_emcraft_sf2/
  165. pw_sys_io_mcuxpresso/
  166. pw_sys_io_rp2040/
  167. pw_sys_io_stdio/
  168. pw_sys_io_stm32cube/
  169. pw_sys_io_zephyr/
  170. pw_system/
  171. pw_target_runner/
  172. pw_thread/
  173. pw_thread_embos/
  174. pw_thread_freertos/
  175. pw_thread_stl/
  176. pw_thread_threadx/
  177. pw_thread_zephyr/
  178. pw_tls_client/
  179. pw_tls_client_boringssl/
  180. pw_tls_client_mbedtls/
  181. pw_tokenizer/
  182. pw_toolchain/
  183. pw_trace/
  184. pw_trace_tokenized/
  185. pw_transfer/
  186. pw_uart/
  187. pw_uart_mcuxpresso/
  188. pw_unit_test/
  189. pw_uuid/
  190. pw_varint/
  191. pw_watch/
  192. pw_web/
  193. pw_work_queue/
  194. seed/
  195. targets/
  196. third_party/
  197. zephyr/
  198. .bazelignore
  199. .bazelrc
  200. .bazelversion
  201. .black.toml
  202. .clang-format
  203. .clang-tidy
  204. .git-blame-ignore-revs
  205. .gitattributes
  206. .gitignore
  207. .gn
  208. .mypy.ini
  209. .prettierignore
  210. .prettierrc.cjs
  211. .pw_ide.yaml
  212. .pylintrc
  213. .ruff.toml
  214. activate.bat
  215. Android.bp
  216. AUTHORS
  217. bootstrap.bat
  218. bootstrap.fish
  219. bootstrap.sh
  220. BUILD.bazel
  221. BUILD.gn
  222. BUILDCONFIG.gn
  223. CMakeLists.txt
  224. GEMINI.md
  225. go.mod
  226. go.sum
  227. Kconfig.zephyr
  228. LICENSE
  229. MODULE.bazel
  230. MODULE.bazel.lock
  231. modules.gni
  232. OWNERS
  233. package.json
  234. pigweed.json
  235. PIGWEED_MODULES
  236. pw
  237. README.md
  238. REPO.bazel
  239. rustfmt.toml
  240. tsconfig.json
  241. workflows.json
  242. WORKSPACE
  243. WORKSPACE_OWNERS
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