third_party/freertos: Allow global freertos dir

Adds build-time errors in the FreeRTOS GN build to detect when FreeRTOS
is in use, but not properly set up. This allows projects to now set the
dir_pw_third_party_freertos build argument globally without breaking
toolchains that do not use FreeRTOS (and therefore haven't properly set
it up).

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